--DM7
--DM6
(1)DM7数据库
DM7数据库通过系统配置文件dm.ini(ARCH_INI参数)和dmarch.ini来进行归档的配置。DM7数据库有多种归档方式,部署DMHS时,需要开启本地归档方式,最多可以设置8个本地归档。
Ø 查询DM7数据库是否开启了归档模式
SQL> select arch_mode from v$database;
行号 ARCH_MODE
---------- ---------
1 Y
已用时间: 2.984(毫秒). 执行号:11926314.
SQL>
Ø 查询DM7数据库的归档配置信息
SQL> select arch_name,arch_type,arch_dest,arch_file_size,arch_space_limit from v$dm_arch_ini;
行号 ARCH_NAME ARCH_TYPE ARCH_DEST ARCH_FILE_SIZE ARCH_SPACE_LIMIT
---------- -------------- --------- ---------------- -------------- ----------------
1 ARCHIVE_LOCAL1 LOCAL /home/dmdba/arch 128 0
已用时间: 0.740(毫秒). 执行号:11926317.
SQL>
或者使用manager管理工具进行查看。
如果DM7数据库本地归档未开启,可以使用SQL语句或者在数据库系统配置文件目录直接编辑dm.ini和dmarch.ini文件进行配置。SQL语句提供了在DM7服务器运行时对归档配置进行动态修改的手段,通过SQL语句修改成功后会将相关配置写入dmarch.ini文件中。只有在mount状态下,才能对DM7数据库归档进行修改操作。
SQL> alter database mount;
操作已执行
已用时间: 00:00:01.343. 执行号:0.
SQL>alter database add archivelog 'dest=/home/dmdba/arch_new,type=local,file_size=256,space_limit=4096';
操作已执行
已用时间: 53.172(毫秒). 执行号:0.
SQL> alter database archivelog;
操作已执行
已用时间: 79.639(毫秒). 执行号:0.
SQL> alter database open;
操作已执行
已用时间: 736.239(毫秒). 执行号:0.
SQL> select arch_name,arch_type,arch_dest,arch_file_size,arch_space_limit from v$dm_arch_ini;
行号 ARCH_NAMEARCH_TYPE ARCH_DESTARCH_FILE_SIZE ARCH_SPACE_LIMIT
---------- -------------- --------- -------------------- -------------- ----------------
1 ARCHIVE_LOCAL1 LOCAL /home/dmdba/arch 128 0
2 ARCHIVE_LOCAL2 LOCAL /home/dmdba/arch_new 256 4096
已用时间: 0.928(毫秒). 执行号:11926368.
SQL>
经过修改后,dmarch.ini参数内容如下:
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /home/dmdba/arch
ARCH_FILE_SIZE = 128
ARCH_SPACE_LIMIT = 0
[ARCHIVE_LOCAL2]
ARCH_TYPE = LOCAL
ARCH_DEST = /home/dmdba/arch_new
ARCH_FILE_SIZE = 256
ARCH_SPACE_LIMIT = 4096
另外DM7数据库还具有与ORACLE数据库兼容的动态视图V$archived_log用于显示当前实例的所有归档日志文件信息:
SQL> select name,thread#,first_change#,next_change# from v$archived_log;
行号 NAME THREAD# FIRST_CHANGE# NEXT_CHANGE#
---------- ----------------------------------------------------------- -------------------- -------------------- --------------------
1 /home/dmdba/arch/ARCHIVE_LOCAL1_20170829004722110_0.log 0 302663645 302923251
2 /home/dmdba/arch/ARCHIVE_LOCAL1_20170830175141262_0.log 0 302924764 302926275
3 /home/dmdba/arch_new/ARCHIVE_LOCAL2_20170830175141416_0.log 0 302924764 302926275
已用时间: 0.400(毫秒). 执行号:11926372.
SQL>
(2)DM6数据库
对于DM6数据库,在使用CREATE DATABASE语句创建数据库时,可以使用ARCHIVELOG和ARCHIVEDIR子句开启数据库归档模式,默认数据库是不开启归档模式。DM6数据库使用系统函数对归档配置信息进行查询:
Ø 首先从系统全局表中查询出数据库的id值
SQL>select name,id from sysdatabases;
select name,id from sysdatabases;
name id
1 oca_db01 60
2 oca_db02 61
3 SYSTEM 0
4 TEST 59
5 testdb01 130
6 ZJW 303
6 rows got
time used: 1.399(ms).
SQL>
Ø 根据数据库id值查询数据库归档模式是否开启
SQL>select db_get_arch_flag(0);
select db_get_arch_flag(0);
DB_GET_ARCH_FLAG(0)
1 0
1 rows got
time used: 1.127(ms).
SQL>
以上db_get_arch_flag(0)查询的为SYSTEM数据库的归档是否开启,值为0表示未开启。如果数据库未开启归档模式,可以使用ALTER DATABASE语句开启归档模式。
Ø 查询数据库归档默认的归档目录以及归档风格
SQL>select db_get_arch_dir(0);
select db_get_arch_dir(0);
DB_GET_ARCH_DIR(0)
1 /opt/dmServer/arch
1 rows got
time used: 1.147(ms).
SQL>select db_get_arch_style(0);
select db_get_arch_style(0);
DB_GET_ARCH_STYLE(0)
1 %s%t.log
1 rows got
time used: 1.096(ms).
SQL>
如果需要对数据库默认的归档目录进行修改可以使用系统函数或者ALTER DATABASE语句进行修改。
Ø 使用系统函数修改数据库默认归档目录
SQL>select db_set_arch_dir(0,'/opt/dmServer/data');
select db_set_arch_dir(0,'/opt/dmServer/data');
DB_SET_ARCH_DIR(0,/opt/dmServer/data)
1 1
1 rows got
time used: 5.223(ms).
SQL>select db_get_arch_dir(0);
select db_get_arch_dir(0);
DB_GET_ARCH_DIR(0)
1 /opt/dmServer/data
1 rows got
time used: 0.809(ms).
SQL>
或者使用ALTER DATABASE语句修改
或者使用ALTER DATABASE语句修改
SQL>alter database system modify archivedir to '/opt/dmServer/arch';
alter database system modify archivedir to '/opt/dmServer/arch'
time used: 4.624(ms).
SQL>select db_get_arch_dir(0);
select db_get_arch_dir(0);
DB_GET_ARCH_DIR(0)
1 /opt/dmServer/arch
1 rows got
time used: 0.735(ms).
SQL>
确定好归档目录后,使用ALTER DATABASE语句开启数据库归档模式,不需要重启数据库。
SQL>alter database system archivelog;
alter database system archivelog
time used: 5.337(ms).
SQL>select db_get_arch_flag(0);
select db_get_arch_flag(0);
DB_GET_ARCH_FLAG(0)
1 1
1 rows got
time used: 0.763(ms).
SQL>
或者使用manager工具操作。
总结如下:
DB_GET_ARCH_DIR(id) 根据数据库id 取得归档默认路径
DB_GET_ARCH_FLAG(id) 根据数据库id 取得归档标识
DB_GET_ARCH_STYLE(id) 根据数据库id 取得归档文件名生成方式
DB_SET_ARCH_DIR(id,path) 设置归档默认路径 id 为数据库ID
DB_SET_ARCH_FLAG(id,flag) 设置归档标识 id 为数据库ID
DB_SET_ARCH_STYLE(id,style) 设置归档文件名生成方式 id 为数据库ID