CentOS Data Guard数据库更改字符集备库需要单独操作

系统 Linux
CentOS Data Guard下面的操作均在Primary上,不会影响到Standby DB,备库需要单独操作。数据库更改字符集:源字符集CentOS Data Guard目标字符集WE8ISO8859P1 --> AL32UTF8AL16UTF16 --> AL16UTF16

在向大家详细介绍CentOS Data Guard 之前,首先让大家了解下CentOS Data Guard ,然后全面介绍CentOS Data Guard ,希望对大家有用。[实验]CentOS Data Guard环境下修改数据库字符集 环境.

  1. VMWARE  
  2. OS:CentOS 5.3  
  3. Primary:Oracle 10.2.0.1.0  
  4. Standby:Oracle 10.2.0.1.0 

CentOS Data Guard下面的操作均在Primary上,不会影响到Standby DB,备库需要单独操作。数据库更改字符集:源字符集CentOS Data Guard目标字符集WE8ISO8859P1 --> AL32UTF8AL16UTF16 --> AL16UTF16

<方法一>:由于目标CentOS Data Guard字符集不是源字符集的超集,所以导致失败

  1.   Startup nomount;  
  2.   Alter database mount exclusive;  
  3.   Alter system enable restricted session;  
  4.   Alter system set job_queue_processes=0;**  
  5.   Alter database open;  
  6.   Alter database character set AL32UTF8; 


在***一步报错,内容为目标字符集不是源字符集的超集过程:

  1. SQL> shutdown immediate;  
  2. Database closed.  
  3. Database dismounted.  
  4. ORACLE instance shut down.  
  5. SQL> startup nomount;  
  6. ORA-32004: obsolete and/or deprecated parameter(s) specified  
  7. ORACLE instance started.  
  1. Total System Global Area  272629760 bytes  
  2. Fixed Size                  1218920 bytes  
  3. Variable Size              92276376 bytes  
  4. Database Buffers          176160768 bytes  
  5. Redo Buffers                2973696 bytes  
  6. SQL> Alter database mount exclusive;  
  1. Database altered.  
  2. SQL> Alter system enable restricted session;  
  3. System altered.  
  4. SQL> Alter system set job_queue_processes=0;  
  5. System altered.  
  6. SQL> Alter database open;  
  7. Database altered.  
  8. SQL> Alter database character set AL32UTF8;  
  9. Alter database character set AL32UTF8  
  10. ERROR at line 1:  
  11. ORA-12712: new character set must be a superset of old character set  
  1. SQL> host  
  2. [oracle@Primary ~]$ oerr ora 12712  
  3. 12712, 00000, "new character set must be a superset of old character set"  
  4. // *Cause: When you ALTER DATABASE ... CHARACTER SET, the new  
  5. //         character set must be a superset of the old character set.  
  6. //         For example, WE8ISO8859P1 is not a superset of the WE8DEC.  
  7. // *Action: Specify a superset character set.  

 CentOS Data Guard<方法二>:成功,但此方法非常危险,可能会造成数据库崩溃
SQL> show user;
USER is "SYS"
SQL> select status from v$instance; 
STATUS
OPEN
SQL> update props$ set value$ = 'AL32UTF8' where name = 'NLS_CHARACTERSET';
 
1 row updated.SQL> update props$ set value$ = 'AL16UTF16' where name = 'NLS_NCHAR_CHARACTERSET';1 row updated.SQL> commit;Commit complete.
 
SQL> exit
Disconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
/home/oracle>sqlplus / as sysdba;
 
SQL*Plus: Release 10.2.0.1.0 - Production on Wed Apr 15 17:15:47 2009
Copyright (c) 1982, 2005, Oracle.  All rights reserved.
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
 
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup mount;
ORA-32004: obsolete and/or deprecated parameter(s) specified
ORACLE instance started.
 
Total System Global Area  272629760 bytes
Fixed Size                  1218920 bytes
Variable Size              92276376 bytes
Database Buffers          176160768 bytes
Redo Buffers                2973696 bytes
Database mounted.
SQL> alter system enable restricted session;
 
System altered.
 
SQL> alter system set job_queue_processes=0;
 
System altered.
 
SQL> alter database open;
 
Database altered.
 
SQL> alter database character set AL32UTF8;
 
Database altered.
 
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> exit
/home/oracle>sqlplus / as sysdba;
 
SQL*Plus: Release 10.2.0.1.0 - Production on Wed Apr 15 17:21:15 2009
 
Copyright (c) 1982, 2005, Oracle.  All rights reserved.
 
Connected to an idle instance.
 
SQL> startup
ORA-32004: obsolete and/or deprecated parameter(s) specified
ORACLE instance started.
 
Total System Global Area  272629760 bytes
Fixed Size                  1218920 bytes
Variable Size              92276376 bytes
Database Buffers          176160768 bytes
Redo Buffers                2973696 bytes
Database mounted.
Database opened.
 
SQL>select * from v$nls_parameters;
1 NLS_LANGUAGE SIMPLIFIED CHINESE
2 NLS_TERRITORY CHINA
3 NLS_CURRENCY ?
4 NLS_ISO_CURRENCY CHINA
5 NLS_NUMERIC_CHARACTERS .,
6 NLS_CALENDAR GREGORIAN
7 NLS_DATE_FORMAT DD-MON-RR
8 NLS_DATE_LANGUAGE SIMPLIFIED CHINESE
9 NLS_CHARACTERSET WE8ISO8859P1
10 NLS_SORT BINARY
11 NLS_TIME_FORMAT HH.MI.SSXFF AM
12 NLS_TIMESTAMP_FORMAT DD-MON-RR HH.MI.SSXFF AM
13 NLS_TIME_TZ_FORMAT HH.MI.SSXFF AM TZR
14 NLS_TIMESTAMP_TZ_FORMAT DD-MON-RR HH.MI.SSXFF AM TZR
15 NLS_DUAL_CURRENCY ?
16 NLS_NCHAR_CHARACTERSET AL16UTF16
17 NLS_COMP BINARY
18 NLS_LENGTH_SEMANTICS BYTE
19 NLS_NCHAR_CONV_EXCP FALSE
CentOS Data Guard成功更改!

【编辑推荐】

  1. CentOS plproxy查询安装pgsql编译源码
  2. CentOS VNC试验用的工控机不支持鼠标
  3. CentOS gcc安装问题的解决方法
  4. CentOS系统是Linux常见版本之一
  5. CentOS PPPOE安装配置客户端软件和前提条件
责任编辑:佚名 来源: CSDN
相关推荐

2010-04-21 09:49:10

Oracle数据库字符

2010-04-13 12:23:34

Oracle数据库

2019-05-10 08:27:12

MySQL数据库字符集

2010-04-13 13:24:04

Oracle数据库

2010-04-23 10:18:42

Oracle数据库字符

2010-05-10 11:50:33

Oracle数据库字符

2009-11-20 17:06:49

Oracle数据库字符

2019-09-11 15:13:57

Oracle数据库存储

2011-05-18 10:36:21

数据库数据导入

2019-09-10 07:58:01

字符集MySQL数据库

2010-07-27 09:38:11

DB2数据库设计

2011-05-12 09:43:28

MySQL数据库服务器字符集设置

2009-09-18 15:19:19

LINQ to SQL

2011-08-15 21:17:38

Oracle数据库字符集

2021-10-26 08:00:00

数据库架构技术

2010-05-14 16:49:43

MySQL 数据库

2011-03-16 16:40:00

DB2数据库字符集设置

2023-08-27 22:33:04

数据库机制Oceanbase

2010-04-30 10:16:22

Oracle字符集

2018-11-12 15:15:32

MySQL数据库命令
点赞
收藏

51CTO技术栈公众号