RAC修改字符集
字符集修改做过几次了,这次感觉还是有点不顺,走了弯路,再记一遍
【概况】
准备搭建RAC+RAC DG,发现两端字符集不大一致,担心到时出问题。
【目标】
将备库NLS_NCHAR_CHARACTERSET修改成与主库一致。
--备
NLS_NCHAR_CHARACTERSET UTF8
修改为
--主
NLS_NCHAR_CHARACTERSET AL16UTF16
0、备库 修改前
PRIMARY-SYS@TESTDB2>set pagesize 100
PRIMARY-SYS@TESTDB2>col value$ for a30
PRIMARY-SYS@TESTDB2>select name,value$ from props$ where name like '%NLS%';
NAME VALUE$
------------------------------------------------------------------------------------------ ------------------------------
NLS_LANGUAGE AMERICAN
NLS_TERRITORY AMERICA
NLS_CURRENCY $
NLS_ISO_CURRENCY AMERICA
NLS_NUMERIC_CHARACTERS .,
NLS_CHARACTERSET ZHS16GBK
NLS_CALENDAR GREGORIAN
NLS_DATE_FORMAT DD-MON-RR
NLS_DATE_LANGUAGE AMERICAN
NLS_SORT BINARY
NLS_TIME_FORMAT HH.MI.SSXFF AM
NLS_TIMESTAMP_FORMAT DD-MON-RR HH.MI.SSXFF AM
NLS_TIME_TZ_FORMAT HH.MI.SSXFF AM TZR
NLS_TIMESTAMP_TZ_FORMAT DD-MON-RR HH.MI.SSXFF AM TZR
NLS_DUAL_CURRENCY $
NLS_COMP BINARY
NLS_LENGTH_SEMANTICS BYTE
NLS_NCHAR_CONV_EXCP FALSE
NLS_NCHAR_CHARACTERSET UTF8
NLS_RDBMS_VERSION 11.2.0.4.0
20 rows selected.
1、节点2 先停掉,在节点1修改完成后再启动
[root@NODE2 ~]# ls -l /u01/app/11.2.0/grid/bin/crsctl
-rwxr-xr-x 1 root oinstall 8576 Jan 13 2017 /u01/app/11.2.0/grid/bin/crsctl
[root@NODE2 ~]#
[root@NODE2 ~]# /u01/app/11.2.0/grid/bin/crsctl stop cluster
CRS-2673: Attempting to stop 'ora.crsd' on 'NODE2'
CRS-2790: Starting shutdown of Cluster Ready Services-managed resources on 'NODE2'
CRS-2673: Attempting to stop 'ora.LISTENER_SCAN1.lsnr' on 'NODE2'
CRS-2673: Attempting to stop 'ora.LISTENER.lsnr' on 'NODE2'
CRS-2673: Attempting to stop 'ora.CRSDG.dg' on 'NODE2'
CRS-2673: Attempting to stop 'ora.TESTDB.db' on 'NODE2'
CRS-2677: Stop of 'ora.LISTENER_SCAN1.lsnr' on 'NODE2' succeeded
CRS-2673: Attempting to stop 'ora.scan1.vip' on 'NODE2'
CRS-2677: Stop of 'ora.LISTENER.lsnr' on 'NODE2' succeeded
CRS-2673: Attempting to stop 'ora.NODE2.vip' on 'NODE2'
CRS-2677: Stop of 'ora.scan1.vip' on 'NODE2' succeeded
CRS-2672: Attempting to start 'ora.scan1.vip' on 'NODE1'
CRS-2677: Stop of 'ora.NODE2.vip' on 'NODE2' succeeded
CRS-2672: Attempting to start 'ora.NODE2.vip' on 'NODE1'
CRS-2677: Stop of 'ora.TESTDB.db' on 'NODE2' succeeded
CRS-2673: Attempting to stop 'ora.DATA.dg' on 'NODE2'
CRS-2673: Attempting to stop 'ora.FRA.dg' on 'NODE2'
CRS-2677: Stop of 'ora.DATA.dg' on 'NODE2' succeeded
CRS-2677: Stop of 'ora.FRA.dg' on 'NODE2' succeeded
CRS-2676: Start of 'ora.scan1.vip' on 'NODE1' succeeded
CRS-2672: Attempting to start 'ora.LISTENER_SCAN1.lsnr' on 'NODE1'
CRS-2676: Start of 'ora.NODE2.vip' on 'NODE1' succeeded
CRS-2676: Start of 'ora.LISTENER_SCAN1.lsnr' on 'NODE1' succeeded
CRS-2677: Stop of 'ora.CRSDG.dg' on 'NODE2' succeeded
CRS-2673: Attempting to stop 'ora.asm' on 'NODE2'
CRS-2677: Stop of 'ora.asm' on 'NODE2' succeeded
CRS-2673: Attempting to stop 'ora.ons' on 'NODE2'
CRS-2677: Stop of 'ora.ons' on 'NODE2' succeeded
CRS-2673: Attempting to stop 'ora.net1.network' on 'NODE2'
CRS-2677: Stop of 'ora.net1.network' on 'NODE2' succeeded
CRS-2792: Shutdown of Cluster Ready Services-managed resources on 'NODE2' has completed
CRS-2677: Stop of 'ora.crsd' on 'NODE2' succeeded
CRS-2673: Attempting to stop 'ora.ctssd' on 'NODE2'
CRS-2673: Attempting to stop 'ora.evmd' on 'NODE2'
CRS-2673: Attempting to stop 'ora.asm' on 'NODE2'
CRS-2677: Stop of 'ora.evmd' on 'NODE2' succeeded
CRS-2677: Stop of 'ora.asm' on 'NODE2' succeeded
CRS-2673: Attempting to stop 'ora.cluster_interconnect.haip' on 'NODE2'
CRS-2677: Stop of 'ora.cluster_interconnect.haip' on 'NODE2' succeeded
CRS-2677: Stop of 'ora.ctssd' on 'NODE2' succeeded
CRS-2673: Attempting to stop 'ora.cssd' on 'NODE2'
CRS-2677: Stop of 'ora.cssd' on 'NODE2' succeeded
[root@NODE2 ~]#
2、节点1
PRIMARY-SYS@TESTDB1>show parameter pfile;
NAME TYPE VALUE
------------------------------------ --------------------------------- ------------------------------
spfile string +DATA/TESTDB/parameterfile/spf
ile.344.1016736315
PRIMARY-SYS@TESTDB1>create pfile from spfile;
--这样的话就直接修改上面生成的pfile文件中cluster_database=false 用pfile mount +修改INTERNAL_USE + open ,然后再创建spfile共节点2一起使用
--下面没必要修改spfile,保持spfile(两节点共享的)中cluster_database=TRUE
--alter system set cluster_database=false;
PRIMARY-SYS@TESTDB1>alter system set cluster_database=false scope=spfile;
System altered.
--需要【重启】才能生效,尽管上面已经修改了
PRIMARY-SYS@TESTDB1>show parameter cluster_database
NAME TYPE VALUE
------------------------------------ --------------------------------- ------------------------------
cluster_database boolean TRUE
cluster_database_instances integer 2
PRIMARY-SYS@TESTDB1>shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
--mv initTESTDB1.ora initTESTDB1.ora.bak,最后又mv回来了,没改回就报下面的错了
PRIMARY-SYS@TESTDB1>startup mount;
ORA-01078: failure in processing system parameters
LRM-00109: could not open parameter file '/u01/app/oracle/product/11.2.0/db_home1/dbs/initTESTDB1.ora'
PRIMARY-SYS@TESTDB1>startup mount;
ORACLE instance started.
Total System Global Area 7.4826E+10 bytes
Fixed Size 2261048 bytes
Variable Size 4.6976E+10 bytes
Database Buffers 2.7649E+10 bytes
Redo Buffers 199049216 bytes
Database mounted.
PRIMARY-SYS@TESTDB1>ALTER SYSTEM ENABLE RESTRICTED SESSION;
System altered.
PRIMARY-SYS@TESTDB1>ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;
System altered.
PRIMARY-SYS@TESTDB1>ALTER SYSTEM SET AQ_TM_PROCESSES=0;
System altered.
PRIMARY-SYS@TESTDB1>ALTER DATABASE OPEN;
Database altered.
--这一步是【重点要修改的】
PRIMARY-SYS@TESTDB1>ALTER DATABASE NATIONAL CHARACTER SET INTERNAL_USE AL16UTF16;
Database altered.
--pfile启动了,没法修改spfile了
PRIMARY-SYS@TESTDB1>alter system set cluster_database=true scope=spfile sid='*';
alter system set cluster_database=true scope=spfile sid='*'
*
ERROR at line 1:
ORA-32001: write to SPFILE requested but no SPFILE is in use
PRIMARY-SYS@TESTDB1>show parameter pfile;
NAME TYPE VALUE
------------------------------------ --------------------------------- ------------------------------
spfile string
--手动修改initTESTDB1.ora中的cluster_database=true,重建spfile
PRIMARY-SYS@TESTDB1>create spfile from pfile='/u01/app/oracle/product/11.2.0/db_home1/dbs/initTESTDB1.ora';
File created.
PRIMARY-SYS@TESTDB1>shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
PRIMARY-SYS@TESTDB1>startup mount;
ORACLE instance started.
Total System Global Area 7.4826E+10 bytes
Fixed Size 2261048 bytes
Variable Size 4.6976E+10 bytes
Database Buffers 2.7649E+10 bytes
Redo Buffers 199049216 bytes
Database mounted.
--还得改回去,0->1
PRIMARY-SYS@TESTDB1>ALTER SYSTEM DISABLE RESTRICTED SESSION;
System altered.
PRIMARY-SYS@TESTDB1>ALTER SYSTEM SET JOB_QUEUE_PROCESSES=1;
System altered.
PRIMARY-SYS@TESTDB1>ALTER SYSTEM SET AQ_TM_PROCESSES=1;
System altered.
PRIMARY-SYS@TESTDB1>show parameter pfile;
NAME TYPE VALUE
------------------------------------ --------------------------------- ------------------------------
spfile string /u01/app/oracle/product/11.2.0
/db_home1/dbs/spfileTESTDB1.or
a
PRIMARY-SYS@TESTDB1>alter system set cluster_database=true scope=spfile sid='*';
System altered.
PRIMARY-SYS@TESTDB1>alter database open;
Database altered.
--cluster_database【重启】才生效
PRIMARY-SYS@TESTDB1>show parameter cluster_database
NAME TYPE VALUE
------------------------------------ --------------------------------- ------------------------------
cluster_database boolean FALSE
cluster_database_instances integer 1
PRIMARY-SYS@TESTDB1>shut immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
PRIMARY-SYS@TESTDB1>
PRIMARY-SYS@TESTDB1>
PRIMARY-SYS@TESTDB1>
PRIMARY-SYS@TESTDB1>startup
ORACLE instance started.
Total System Global Area 7.4826E+10 bytes
Fixed Size 2261048 bytes
Variable Size 4.9392E+10 bytes
Database Buffers 2.5233E+10 bytes
Redo Buffers 199049216 bytes
Database mounted.
Database opened.
PRIMARY-SYS@TESTDB1>show parameter cluster_database
NAME TYPE VALUE
------------------------------------ --------------------------------- ------------------------------
cluster_database boolean TRUE
cluster_database_instances integer 2
PRIMARY-SYS@TESTDB1>
PRIMARY-SYS@TESTDB1>set pagesize 100
PRIMARY-SYS@TESTDB1>col value$ for a30
PRIMARY-SYS@TESTDB1>select name,value$ from props$ where name like '%NLS%';
NAME VALUE$
------------------------------------------------------------------------------------------ ------------------------------
NLS_LANGUAGE AMERICAN
NLS_TERRITORY AMERICA
NLS_CURRENCY $
NLS_ISO_CURRENCY AMERICA
NLS_NUMERIC_CHARACTERS .,
NLS_CHARACTERSET ZHS16GBK
NLS_CALENDAR GREGORIAN
NLS_DATE_FORMAT DD-MON-RR
NLS_DATE_LANGUAGE AMERICAN
NLS_SORT BINARY
NLS_TIME_FORMAT HH.MI.SSXFF AM
NLS_TIMESTAMP_FORMAT DD-MON-RR HH.MI.SSXFF AM
NLS_TIME_TZ_FORMAT HH.MI.SSXFF AM TZR
NLS_TIMESTAMP_TZ_FORMAT DD-MON-RR HH.MI.SSXFF AM TZR
NLS_DUAL_CURRENCY $
NLS_COMP BINARY
NLS_LENGTH_SEMANTICS BYTE
NLS_NCHAR_CONV_EXCP FALSE
--发现已【修改】成功
NLS_NCHAR_CHARACTERSET AL16UTF16
NLS_RDBMS_VERSION 11.2.0.4.0
20 rows selected.
PRIMARY-SYS@TESTDB1>
3、第二个节点启动
[root@NODE2 ~]# /u01/app/11.2.0/grid/bin/crsctl start cluster
CRS-2672: Attempting to start 'ora.cssdmonitor' on 'NODE2'
CRS-2676: Start of 'ora.cssdmonitor' on 'NODE2' succeeded
CRS-2672: Attempting to start 'ora.cssd' on 'NODE2'
CRS-2672: Attempting to start 'ora.diskmon' on 'NODE2'
CRS-2676: Start of 'ora.diskmon' on 'NODE2' succeeded
CRS-2676: Start of 'ora.cssd' on 'NODE2' succeeded
CRS-2672: Attempting to start 'ora.ctssd' on 'NODE2'
CRS-2676: Start of 'ora.ctssd' on 'NODE2' succeeded
CRS-2672: Attempting to start 'ora.evmd' on 'NODE2'
CRS-2672: Attempting to start 'ora.cluster_interconnect.haip' on 'NODE2'
CRS-2676: Start of 'ora.evmd' on 'NODE2' succeeded
CRS-2676: Start of 'ora.cluster_interconnect.haip' on 'NODE2' succeeded
CRS-2672: Attempting to start 'ora.asm' on 'NODE2'
CRS-2676: Start of 'ora.asm' on 'NODE2' succeeded
CRS-2672: Attempting to start 'ora.crsd' on 'NODE2'
CRS-2676: Start of 'ora.crsd' on 'NODE2' succeeded
--设置了自动重启,所以失败。。。
PRIMARY-SYS@TESTDB2>startup mount
ORA-10997: another startup/shutdown operation of this instance inprogress
ORA-09968: unable to lock file
Linux-x86_64 Error: 11: Resource temporarily unavailable
Additional information: 169786
。。。自启动了。。。
--稍等发现已启动OK
PRIMARY-SYS@TESTDB2>select inst_id,instance_name,status from gv$instance;
INST_ID INSTANCE_NAME STATUS
---------- ------------------------------------------------ ------------------------------------
2 TESTDB2 OPEN
1 TESTDB1 OPEN
2 rows selected.
自此两个节点都OK了
【总结】
上面可能说的有点乱,捋一捋。。。不知道说的对不对
0、做事之前要盘算计划好,眼高手低是技术一大障碍,说来都很美好,做起来总不是那么一帆风顺的,稍微一个错误浪费的时间比事前多花点时间准备好多了,当然牛人除外,能够及时处理。
1、根据节点1生成的pfile,修改cluster_database=false启动修改,然后再改回来是不是少点麻烦
2、修改字符集要关闭一个节点,在另外一个节点修改,修改前要把这个节点的cluster_database改成false(别改spfile,spfile是两个节点公用的,改了等下又要改回来,重复工作!),重启(才生效),修改时按照上面mount之后操作即可,修改后再把0改成1,cluster_database再改成true,重启(生效),启动节点2(还是修改之前的spfile额,cluster_database仍为true),结束。
【小插曲】两节点不从ASM中的spfile启动了
PRIMARY-SYS@DINPAY1>show parameter pfile;
NAME TYPE VALUE
------------------------------------ --------------------------------- ------------------------------
spfile string /u01/app/oracle/product/11.2.0
/db_home1/dbs/spfileDINPAY1.or
a
PRIMARY-SYS@DINPAY1>create pfile from spfile;
File created.
PRIMARY-SYS@DINPAY1>create spfile from pfile='/u01/app/oracle/product/11.2.0/db_home1/dbs/initDINPAY1.ora';
create spfile from pfile='/u01/app/oracle/product/11.2.0/db_home1/dbs/initDINPAY1.ora'
*
ERROR at line 1:
ORA-32002: cannot create SPFILE already being used by the instance
PRIMARY-SYS@DINPAY1>shut immediate
PRIMARY-SYS@DINPAY1>startup pfile='/u01/app/oracle/product/11.2.0/db_home1/dbs/initDINPAY1.ora';
PRIMARY-SYS@DINPAY1>show parameter pfile;
NAME TYPE VALUE
------------------------------------ --------------------------------- ------------------------------
spfile string
PRIMARY-SYS@DINPAY1>create spfile='+data' from pfile='/u01/app/oracle/product/11.2.0/db_home1/dbs/initDINPAY1.ora';
File created.
PRIMARY-SYS@DINPAY1>show parameter pfile;
NAME TYPE VALUE
------------------------------------ --------------------------------- ------------------------------
spfile string
PRIMARY-SYS@DINPAY1>shut immediate
--grid登陆查找生成spfile位置
ASMCMD> cd +DATA/dinpay/parameterfile/
ASMCMD> ls
spfile.282.1016709123
spfile.343.1016734531
spfile.344.1016736315
spfile.346.1025548589
--刚刚生成的
+DATA/dinpay/parameterfile/spfile.346.1025548589
--更新pfile,别这样create pfile from spfile;指定pfile生成位置
[oracle@zhjlrac1 dbs]$ pwd
/u01/app/oracle/product/11.2.0/db_home1/dbs
[oracle@szml02-db01 dbs]$ cat initDINPAY1.ora
SPFILE='+DATA/dinpay/parameterfile/spfile.346.1025548589'
PRIMARY-SYS@DINPAY1>startup
ORACLE instance started.
Total System Global Area 7.4826E+10 bytes
Fixed Size 2261048 bytes
Variable Size 4.9124E+10 bytes
Database Buffers 2.5501E+10 bytes
Redo Buffers 199049216 bytes
Database mounted.
Database opened.
PRIMARY-SYS@DINPAY1>
PRIMARY-SYS@DINPAY1>show parameter pfile;
NAME TYPE VALUE
------------------------------------ --------------------------------- ------------------------------
spfile string +DATA/dinpay/parameterfile/spf
ile.346.1025548589
另外一个节点页如上指向这个spfile,重启OK。
如果直接使用create pfile from spfile;命令创建pfile,那么生成的pfile 文件将覆盖原有$ORACLE_HOME/dbs 目录下的pfile 文件。 而在之前的pfile文件里面值保留了一条指向spfile存放位置的记录。 这样修改之后,就会造成数据库启动时会因为找不到spfile文件而读取本地的pfile文件,而不是共享设备上的spfile文件。这样对参数管理上就会带来麻烦,也带来其他的隐患。
所以对于RAC,要慎用 create pfile from spfile; 来创建pfile 文件, 在创建的时候,尽量指定pfile的生成位置。
RAC修改字符集的更多相关文章
- oracle 11g rac 修改字符集
系统版本: Oracle Linux Server release 5.7 数据库版本: Oracle Database 11g Enterprise Edition Release 11.2.0.3 ...
- RAC环境下修改字符集
跟单实例多少有点区别ORACLE 11g RAC 两节点第一步 查看字符集PRIMARY-SYS@mydb2>select userenv('language') from dual; USER ...
- oracle 修改字符集支持中文
1.登录sys关闭服务 [oracle@t-e ~]$ export ORACLE_SID=kamiltest1 [oracle@t-e ~]$ sqlplus / as sysdba SQL> ...
- oracle基础教程(8)oracle修改字符集
oracle基础教程(8)oracle修改字符集 1.用dba连接数据库 -->sqlplus / as sysdba 2.查看字符集 -->SELECT parameter, value ...
- oracle修改字符集
在linux下面安装了oracle 11G,由于安装的时候没有注意导致字符集问题,impdp导入操作后中文乱码. 1.用命令select userenv('language') from dual; ...
- oracle11g 修改字符集
查看当前字符集SQL语句: select * from nls_database_parameters where parameter ='NLS_CHARACTERSET'; 修改字符集操作如下,首 ...
- mysql 修改字符集
查看mysql数据编码 登录MySQL服务,查看mysql数据库默认的编码 mysql> show variables like 'character%'; +----------------- ...
- Linux下修改字符集,转自
以下转自http://blog.csdn.net/cyuyan112233/article/details/6539122 Linux下修改字符集 locale -a 查询系统支持的字符集 expor ...
- oracle修改字符集后数据库不能启动
最近在做修改字符集的实验,悲剧的是修改后重启,数据库启动不了. SQL> alter system set nls_language='AMERICAN' scope = spfile; S ...
随机推荐
- Java的 FileWriter类 和 FileReader类
一.FileReader类1,构造方法:FileReader fr = new FileReader(String fileName);//使用带有指定文件的String参数的构造方法.创建该输入流对 ...
- JavaScript算法实现之汉诺塔(Hanoi)
目前前端新手,看到的不喜勿喷,还望大神指教. 随着Node.js,Angular.js,JQuery的流行,点燃了我学习JavaScript的热情!以后打算每天早上跟晚上抽2小时左右时间将经典的算法都 ...
- Windows Server 2012R2 DHCP服务介绍及搭建 转载
转载链接:https://blog.csdn.net/KamRoseLee/article/details/79251830 一.什么是DHCP DHCP(DynamicHost Configur ...
- postgresql密码加强-passwordcheck源码修改三种以上字符
目录 1.使用方式 2.效果 3.源码修改 1.参考pg_cron的源码在配置文件内增加一个参数 2.修改源码配置校验数字 因数据库入网检测须修改密码级别,在源有的passwordcheck插件上进行 ...
- Djangoday1 入门及第一个apphelloworld
1 Django基础指令新建一个django project新建app创建数据库表,更新数据库表或字段使用开发服务器清空数据库创建超级管理员导出数据 导入数据Django 项目环境终端数据库命令行更多 ...
- 个性的圆角.html
- 这可能是最容易入门的socket教程了
前言: 如今,网络编程已然成为了一个后端开发工程师需要具备的核心技能之一.因此,该博客力求提供最简单.通俗的描述方式,来描绘网络编程中常见的知识点,同时附带代码示例,后期会加上具体的抓包分析,实际项目 ...
- Dapr 运用
Dapr 运用 前置条件 Docker Win10 Dapr 部署 本文将采用本地部署的方式. 安装 Dapr CLI 打开 Windows PowerShell 或 cmd ,运行以下命令以安装 D ...
- Create an Embedded Framework in Xcode with Swift
转自:http://zappdesigntemplates.com/create-an-embedded-framework-in-xcode-with-swift/ Post Series: Cre ...
- 【解决】error pulling image configuration: Get https:// ...... x509: certificate has expired or is not yet valid
[问题]进行镜像拉取时报错 [分析] 很多人会被第一句所蒙蔽,按照网上教程进行修改etc/sysconfig/docker,之后发现还是没有用. 其实这里重点是最后一句"certificat ...