达梦数据库联机备份也要设归档模式。 粗看起来好像很容易, 只要alter database archivelog;就可以了。 坑人的是光这样做,你是做不了联机备份的,要去dmarch.ini中改了,重启服务才算数. 这个dmarch.ini内容默认是空的,但在Windows下,会提供一个dmarch_ex
达梦数据库联机备份也要设归档模式。 粗看起来好像很容易, 只要alter database archivelog;就可以了。 坑人的是光这样做,你是做不了联机备份的,要去dmarch.ini中改了,重启服务才算数. 这个dmarch.ini内容默认是空的,但在Windows下,会提供一个dmarch_example.ini文件来做例子。Linux下则没有,所以搞达梦,先弄Windows再弄Linux才明智。Windows版的明显比Linux做得完善,当然性能就不清楚有差异没。
具体的设置归档模式的步骤如下:
1. 查看现有状态
Connected to: DM 7.1.2.215
SQL> select arch_mode from v$database;
LINEID ARCH_MODE
---------- ---------
1 N
used time: 1.709(ms). Execute id is 512.
2. 生成归档目录
mkdir /opt/dmdbms/data/DMSERVER/arch
3. 到数据库所在目录下,在空白的dmarch.ini 中新增这些参数
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /opt/dmdbms/data/DMSERVER/arch
ARCH_FILE_SIZE = 128
ARCH_SPACE_LIMIT = 0
4. 检查 dm.ini,让它知道dmarch.ini 生效了。
a. cp dm.ini dm_bk.ini
b.
更改方法一:
vi dm.ini
可将ARCH_INI 对应的参数改为 1 ,即可启用
更改方法二:
SQL>alter database mount;
executed successfully
used time: 545.290(ms). Execute id is 0.
SQL>alter database archivelog;
executed successfully
used time: 2.191(ms). Execute id is 0.
SQL>alter database open;
executed successfully
used time: 523.332(ms). Execute id is 0.
SQL>select arch_mode from v$database;
LINEID ARCH_MODE
---------- ---------
1 Y
used time: 1.360(ms). Execute id is 513.
SQL>
#configuration file
MAL_INI = 0 #dmmal.ini
ARCH_INI = 1 #dmarch.ini
REP_INI = 0 #dmrep.ini
LLOG_INI = 0 #dmllog.ini
TIMER_INI = 0 #dmtimer.ini
MPP_INI = 0 #dmmpp.ini
5. 重启服务
如果不重启,现有的运行的是用旧的dm.ini中的参数,即归档目录等相关设置实际上并没生效。
重启 :
Linux下:
1. 如果是用下面这个命令启动的,去crlt+c 或exit 即退出
./dmserver /opt/dmdbms/data/DMSERVER/dm.ini
或
./dmserver /opt/dmdbms/data/DMSERVER/dm.ini -noconsole
Windows下:
在这里重启
6. 检查设置是否真的成功了。
做一个联机备份来看是否可以备份成功。
backup database full to dm_bak1 bakfile '/dmbak/dm_bak1' backupinfo 'xiongchuanliang' ;
SQL>backup database full to dm_bak1 bakfile '/dmbak/dm_bak1' backupinfo 'xiongchuanliang'
2 ;
executed successfully
used time: 00:00:01.115. Execute id is 3.
SQL>
达梦的文档老实说,真不给力。 上面这些步骤,反复查资料和尝试才弄出来,很费力。
本文原创发布php中文网,转载请注明出处,感谢您的尊重!