分类 ORACLE 下的文章

Oracle中的character set 和 national character set
character set varchar,我们常说的数据库的字符集
查看方式:

SQL> select userenv('language') from dual;

USERENV('LANGUAGE')

----------------------------------------------------

SIMPLIFIED CHINESE_CHINA.ZHS16GBK

 

SQL>select userenv(‘language’) from dual;

AMERICAN _ AMERICA. ZHS16GBK

查询oracle client端的字符集

在windows平台下,就是注册表里面相应OracleHome的NLS_LANG。还可以在dos窗口里面自己设置,

比如: set nls_lang=AMERICAN_AMERICA.ZHS16GBK

这样就只影响这个窗口里面的环境变量。

在unix平台下,就是环境变量NLS_LANG。

$echo $NLS_LANG

AMERICAN_AMERICA.ZHS16GBK

(1).数据库服务器字符集

select * from nls_database_parameters

来源于props$,是表示数据库的字符集。

(2).客户端字符集环境

select * from nls_instance_parameters

其来源于v$parameter,表示客户端的字符集的设置,可能是参数文件,环境变量或者是注册表

(3).会话字符集环境

select * from nls_session_parameters

来源于v$nls_parameters,表示会话自己的设置,可能是会话的环境变量或者是alter session完成,如果会话没有特殊的设置,将与nls_instance_parameters一致。

(4).客户端的字符集要求与服务器一致,才能正确显示数据库的非Ascii字符。

如果多个设置存在的时候,NLS作用优先级别:Sql function > alter session > 环境变量或注册表> 参数文件> 数据库默认参数

字符集要求一致,但是语言设置却可以不同,语言设置建议用英文。如字符集是zhs16gbk,则nls_lang可以是American_America.zhs16gbk。

表示nvchar 的编码方式 national character set,默认utf8-16或32

注意:
注意,如果包含SQL文件的字符集是ANSI,操作界面选用gb2313,如果字符集是UTF-8,选择用UTF-8字符集

记录rman的备份脚本

增备

$ cat  racdb_incr.sh  
#!/bin/ksh

dt=`date +%Y%m%d`
export ORACLE_SID=racdb1

rman target /  >/home/oracle/log/20330arch_$dt.log << EOF
run{
CONFIGURE BACKUP OPTIMIZATION ON;                          
CONFIGURE CONTROLFILE AUTOBACKUP ON;                       
CONFIGURE DEFAULT DEVICE TYPE TO 'sbt_tape';
CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 900 DAYS; 
allocate channel c1 type 'sbt_tape' parms  'ENV=(TDPO_OPTFILE=/usr/tivoli/tsm/client/oracle/bin64/tdpo.opt)'
connect  "sys/XXXXXXXXXXXXXXx@racdb1";
allocate channel c2 type 'sbt_tape' parms  'ENV=(TDPO_OPTFILE=/usr/tivoli/tsm/client/oracle/bin64/tdpo.opt)'
connect  "sys/XXXXXXXXXXXXXX@racdb2";
sql "alter system archive log current";
backup  format '20330arch_%U_%T.bak' archivelog all delete input;
configure controlfile autobackup format for device type 'sbt_tape' to '20330arch_controlfile_spfile_%F';
release channel c1;
release channel c2;
}
exit;
EOF

全备

$ cat racdb_full.sh
#!/bin/ksh

dt=`date +%Y%m%d`
export ORACLE_SID=racdb1
export TDPO_OPTFILE=/usr/tivoli/tsm/client/oracle/bin64/tdpo.opt

rman target /  >/home/oracle/log/20330full_$dt.log << EOF
CONFIGURE CONTROLFILE AUTOBACKUP ON;
CONFIGURE DEFAULT DEVICE TYPE TO 'SBT_TAPE';
CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 900 DAYS;
configure controlfile autobackup format for device type 'sbt_tape' to '20330full_controlfile_spfile_%F';
backup database format '20330full_%U_%T.bak';
exit;
EOF

一、概述

Oracle11g中引入了一个新的PL/SQL包DBMS_COMPARISON,可以比较不同数据库下或者schame下的对象/schema/数据,并且可以根据规则将不同的数据进行同步。这在进行数据的分布时将十分的有用,例如你的数据复制过程中出现问题,导致源数据和目标数据出现不一致,则可以借用该特性进行处理。如果你的系统中没有安装该过程,可以通过以下脚本手动安装:

$ORACLE_HOME/rdbms/admin/dbmscmp.sql

可以利用DBMS_COMPARISON来执行比较的对象有:

* 表
* 基于单个表的视图
* 物化视图
* 以上三种对象的同义词

- 阅读剩余部分 -