金蝶k3日志归档数据在哪里
这里分享下金蝶k3日志归档数据的操作方法。
设备:联想电脑
系统:win7
软件:金蝶k364
1、首先在服务器端找到金蝶云星空管理中心并双击打开。
2、在弹出框中输入用户名、密码,并点击登录。
3、点击创建-创建SqlServer日志库。
4、数据数据库管理员用户名和密码,点击测试。
5、最后选择数据库文件路径,点击确定即可。
Oracle数据库能运行在 种模式下:归档模式(archivelog)和非归档模式(noarchivelog) 归档模式能提高Oracle数据库的可恢复性 生产数据库都应该运行在此模式下 归档模式应该和相应的备份策略相结合 只有归档模式没有相应的备份策略只会带来麻烦
检查归档模式命令
SQL> archive log list Database log mode No Archive Mode Automatic archival Disabled Archive destination USE_DB_RECOVERY_FILE_DEST Oldest online log sequence Current log sequence
设置归档模式
SQL> shutdown immediate; Database closed Database di ounted ORACLE instance shut down SQL> startup mount ORACLE instance started Total System Global Area bytes Fixed Size bytes Variable Size bytes Database Buffers bytes Redo Buffers bytes Database mounted SQL> alter database archivelog; Database altered SQL> alter database open; Database altered SQL> archive log list; Database log mode Archive Mode Automatic archival Enabled Archive destination USE_DB_RECOVERY_FILE_DEST Oldest online log sequence Next log sequence to archive Current log sequence
如果需要停止归档模式 使用 alter database noarchivelog 命令 Oracle g之前 你还需要修改初始化参数使数据库处于自动归档模式 在pfile/spfile中设置如下参数
log_archive_start = true
重启数据库此参数生效 此时数据库处于自动归档模式 也能在数据库启动过程中 手工执行
archive log start
使数据库启用自动归档 不过重启后数据库仍然处于手工归档模式 g使用db_recovery_file_dest来作为归档日志的存放地
SQL> show parameter db_recovery NAME TYPE VALUE db_recovery_file_dest string /home/oracle/ora g/flash_reco very_area/ db_recovery_file_dest_size big integer G
能修改db_recovery_file_dest_size参数的大小
alter system set db_recovery_file_dest_size=
一
重做日志文件把对数据文件的修改在写入数据文件之前记录下来 日志文件以一种循环的方式被写入信息 当一个日志组被写满时 回自动向另一个日志组写入 管理员可以手工切换当前日志组 alter system switch logfile 可以切换当前的日志组 当日志组发生切换时 oracle向新的重做日志组分配一个日志序列号 当存在大量的事务时必须调整重做日志文件的大小 以避免频繁的日志切换发生 重做日志文件被顺序的写在磁盘上 如果磁盘没有其他活动 I/O将会很快 应该把重做日志文件保存在单独的磁盘上 以获取良好的性能 尤其不要把经常处于活动状态的SYSTEM UNDOTBS SYSAUX的表空间或索引表空间文件保存到同一块磁盘上 因为只有在事务的请求被写到重做日志后 请求才能被完成 最大限度的提高重做日志的吞吐量是oracle性能优化首先考虑的因素 当发生重做日志切换而生成一个新的检查点时 DBWn就会写脏缓冲器块 这样会影响oracle的性能 可以通过fast_start_mttr_target初始化参数来调整检查点
每个数据库都有自己的联机重做日志组 一个联机重做日志组有多个重做日志成员 每个日志成员有单独的操作系统文件 在一个rac配置(这种配置中单个数据库装有多个实例) 每个实例有一个联机重做日志线程 每个实例的lgwr进程都写到相同的联机重做日志文件 因此oracle必须跟踪数据库实例修改来自那个实例
当多路复用重做日志文件时 应该把一个组的成员保存在不同的磁盘上 以避免单点故障的发生 如果重做日志文件组的所有成员都无法写入数据 oracle将被挂起 Dba可以在创建数据库时创建多个联机重做日志文件的副本
对日志的操作如下
a 创建新的重做日志组
Alter database add logfile
Group ( /ora /oradata/mydb /redo log
/ora /oradata/mdb /redo log ) size m;
如果省略group子句 oracle分配一个有效的编号 如下
Alter database add logfile
b 添加新的组成员
alter database add logfile member
/ora /oradata/mydb /redo log to group ;(向第二组中添加新的成员)
c 重命名日志成员
在重命名日志组成员之前新的目标必须已经存在 Oracle的sql命令只是把控制文件中的内部指针指向新的日志文件 Dba需要用操作系统命令来重命名此日志文件 步骤如下
.关闭数据库
.使用操作系统命令重命名或移动日志文件
启动数据库实例(start mount) 重命名控制文件中的日志文 件成员 Alter database rename file old_redo_file_name to new_redo_file_name ;
.打开数据库 alter database open
.备份控制文件
D.删除重做日志组
将要被删除的重做日志组不能是活动的日志组 Alter database drop logfile group ; 当重做日志文件被删除后 相关的操作系统文件也被删除 相关的数据库控制文件也给更新
E.使用和删除重做日志组相同的方式 dba可以只删除一个非活动的重做日志组的成员
Alter database drop logfile member /ora /oradata/mydb /redo log ;
f 创建联机重做日志文件
当重做日志组成员遭到破坏时 可以删除并重新添加这个重做日志组或组成员
二
档案重做日志文件
它是联机重做日志文件的一个副本 Lgwr和arcn进程的故障都会引起数据库的挂起 只有当arcn进程把联机重做日志写到归档地后 才可以向此重做日志组成员写入数据
设置归档目的地
可以在参数初始化文件中的log_archive_dest_n来定义归档目的地 归档目的地可以在本地计算机上 也可在远程的数据库服务器上 定义语法如下
LOG_ARCHIVE_DEST_n= null_string |
(service=tnsnames_name |
LOCATION= directory_name )
[MANDATORY | OPTIONAL]
[REOPEN[=integer]]
例
LOG_ARCHIVE_DEST_ =((LOCATION= /archive/MYDB ) MANDATORU REOPEN= )定义归档日志的位置为/archive/MYDB mandatory子句的定义向这个位置写日志的操作必须的成功的 Reopen子句定义在日志写入失败时 下次尝试写入操作的时间间隔 缺省是 秒
例
LOG_ARCHIVE_DEST_@=(SERVICE=STDBY ) OPTIONAL REOPEN;语句中的stdby 的连接到远程数据库的oracle net连接串 由于写操作是可选的 所以数据库活动继续 当arcn进程不能写档案日志文件时 进程将立即尝试重新写入(这个动作有reopen子句来定义)
Log_archive_min_succeed_dest:定义最少归档日志的副本数量
Log_archive_format:定义归档日志文件采用的名称和使用的格式 可以使用预定义变量来构造每个归档日志文件的名称 变量如下
%s 日志序列号
%t 线程号
%r 复位日志id
%d 数据库id
lishixinzhi/Article/program/Oracle/201311/17689
3 恢复目录
31恢复目录的概念
恢复目录是由RMAN使用、维护的用来放置备份信息的仓库。RMAN利用恢复目录记载的信息去判断如何执行需要的备份恢复操作。
恢复目录可以存在于ORACLE数据库的计划中。
虽然恢复目录可以用来备份多个数据库,建议为恢复目录数据库创建一个单独的数据库。
恢复目录数据库不能使用恢复目录备份自身。
32建立恢复目录
第一步,在目录数据库中创建恢复目录所用表空间:
SQL> create tablespace rman_ts datafile 'd:\oracle\oradata\rman\rman_tsdbf' size 20M;
表空间已创建。
第二步,在目录数据库中创建RMAN 用户并授权:
SQL> create user rman identified by rman default tablespace rman_ts temporary tablespace temp quota unlimited on rman_ts;
用户已创建。
SQL> grant recovery_catalog_owner to rman ;
授权成功。
SQL> grant connect, resource to rman ;
授权成功。
第三步,在目录数据库中创建恢复目录
C:\>rman catalog rman/rman
恢复管理器:版本81600 - Production
RMAN-06008:连接到恢复目录数据库
RMAN-06428:未安装恢复目录
RMAN>create catalog tablespace rman_ts;
RMAN-06431:恢复目录已创建
注意:虽然使用RMAN不一定必需恢复目录,但是推荐使用。因为恢复目录记载的信息大部分可以通过控制文件来记载,RMAN在恢复数据库时使用这些信息。不使用恢复目录将会对备份恢复操作有限制。
33使用恢复目录的优势
可以存储脚本;
记载较长时间的备份恢复操作;
4 启动RMAN
RMAN为交互式命令行处理界面,也可以从企业管理器中运行。
为了使用下面的实例,先检查环境符合:
the target database is called "his" and has the same TNS alias
user rman has been granted "recovery_catalog_owner "privileges
目标数据库的连接用户为internal帐号,或者以其他SYSDBA类型帐号连接
the recovery catalog database is called "rman" and has the same TNS alias
the schema containing the recovery catalog is "rman" (same password)
在使用RMAN前,设置NLS_DATE_FORMAT 和NLS_LANG环境变量,很多RMAN LIST命令的输出结果是与日期时间相关的,这点在用户希望执行以时间为基准的恢复工作也很重要。
下例是环境变量的示范:
NLS_LANG= SIMPLIFIED CHINESE_CHINAZHS16GBK
NLS_DATE_FORMAT=DD-MON-YYYY HH24:MI:SS
为了保证RMAN使用时能连接恢复目录,恢复目录数据库必须打开,目标数据库至少要STARTED(unmount),否则RMAN会返回一个错误,目标数据库必须置于归档模式下。
41使用不带恢复目录的RMAN
设置目标数据库的 ORACLE_SID ,执行:
% rman nocatalog
RMAN> connect target
RMAN> connect target internal/<password>@his
42使用带恢复目录的RMAN
% rman rman_ts rman/rman@rman
RMAN> connect target
% rman rman_ts rman/rman@rman target internal/<password>@his
43使用RMAN
一旦连接到目标数据库,可以通过交互界面或者事先存储的脚本执行指定RMAN命令, 下面是一个使用RMAN交互界面的实例:
RMAN> resync catalog;
RMAN-03022:正在编译命令:resync
RMAN-03023:正在执行命令:resync
RMAN-08002:正在启动全部恢复目录的 resync
RMAN-08004:完成全部 resync
使用脚本的实例:
RMAN> execute script alloc_1_disk;
创建或者替代存储的脚本:
RMAN> replace script alloc_1_disk {
2> allocate channel d1 type disk;
3> }
5注册或者注销目标数据库
51注册目标数据库
数据库状态:
恢复目录状态:打开
目标数据库:加载或者打开
目标数据库在第一次使用RMAN之前必须在恢复目录中注册:
第一步,启动恢复管理器,并且连接目标数据库:
C:\>rman target internal/oracle@his catalog rman/rman@rman
恢复管理器:版本81600 - Production
RMAN-06005:连接到目标数据库:HIS (DBID=3021445076)
RMAN-06008:连接到恢复目录数据库
第二步,注册数据库:
RMAN> register database;
RMAN-03022:正在编译命令:register
RMAN-03023:正在执行命令:register
RMAN-08006:注册在恢复目录中的数据库
RMAN-03023:正在执行命令:full resync
RMAN-08002:正在启动全部恢复目录的resync
RMAN-08004:完成全部resync
52注销目标数据库
RMAN提供了一个注销工具,叫DBMS_RCVCAT工具包,请注意一旦注销了该目标数据库,就不可以使用恢复目录中含有的备份集来恢复数据库了。
为了能注销数据库,需要获得数据库的标识码(DB_ID)和数据库键值(DB_KEY)。其中连接目标数据库时将会获得DB_ID。
C:\>rman target internal/oracle@his catalog rman/rman@rman
恢复管理器:版本81600 - Production
RMAN-06005:连接到目标数据库:HIS (DBID=3021445076)
RMAN-06008:连接到恢复目录数据库
其中DBID=3021445076,利用DBID=3021445076查询数据库键值码:
连接到目标数据库,查询db表:
SQL> select from db;
DB_KEY DB_ID CURR_DBINC_KEY
---------- ---------- --------------
1 3021445076 2
获得DB_KEY=1,这样,该目标数据库DB_KEY=1,DBID=3021445076,利用两个值使用DBMS_RCVCAT工具包就可以注销数据库:
SQL> execute dbms_rcvcatunregisterdatabase(1,3021445076);
PL/SQL 过程已成功完成。
至此,注销数据库操作完成。
请采纳。
模拟事务,测试是否会归档
[db2inst1@seagull archive]$ ls /db2home/db2inst1/db2inst1/NODE0000/SQL00001/SQLOGDIR/
S0000000LOG S0000001LOG S0000002LOG
[db2inst1@seagull archive]$ db2 "insert into staff select from staff"
DB20000I The SQL command completed successfully
重复执行该语句,直到报SQL0964C错误
[db2inst1@seagull archive]$ db2 "insert into staff select from staff"
DB21034E The command was processed as an SQL statement because it was not a
valid Command Line Processor command During SQL processing it returned:
SQL0964C The transaction log for the database is full SQLSTATE=57011
#活动日志目录里面先前的日志文件不见了,只剩下了first active ->current的log,个数正好小于等于logprimary(3) + logseconday(2)
[db2inst1@seagull archive]$ ls /db2home/db2inst1/db2inst1/NODE0000/SQL00001/SQLOGDIR/
S0000007LOG S0000008LOG S0000009LOG S0000010LOG S0000011LOG
[db2inst1@seagull C0000000]$ db2 get db cfg|grep "First active log file"
First active log file = S0000007LOG
#可以看到归档目录下已经有了归档文件,且活动日志目录里面的文件被归档后就删除了,归档设置成功!
[db2inst1@seagull C0000000]$ ls
S0000000LOG S0000001LOG S0000002LOG S0000003LOG S0000004LOG S0000005LOG S0000006LOG
此时的LOGRETAIN参数实际还是OFF的,也可以归档,我觉得原因是db2有两种设置归档模式的方法:
1)一种是设置USEREXIT=ON,此时对应的LOGRETAIN必须为ON,归档由USEREXIT指定的用户程序来执行归档
2)另外一种是设置LOGARCHMETH1参数(还有一些相关参数,参考后续介绍),此参数可取值如下
aOFF :表示非归档
bLOGRETAIN:等价于将 LOGRETAIN 配置参数设置为 RECOVERY,如果指定此值,将自动更新LOGRETAIN参数
cUSEREXIT :且等价于将 USEREXIT 配置参数设置为 ON,如果指定此值,将自动更新USEREXIT参数
dDISK :日志文件将在其中归档,
eTSM :将日志文件归档在本地 TSM 服务器上
fVENDOR :指定将使用供应商库来归档日志文件。此值后必须紧跟冒号(:)和库的名称
结论:
1)我的试验里,设置了LOGARCHMETH1=DISK:/xx/xx,就可以归档了,LOGRETAIN=OFF或者RECOVERY无所谓
2)如果执行db2 update db cfg for sample using LOGRETAIN=ON,则相应的LOGARCHMETH1从DISK:/xx/xx自动
变成了LOGRETAIN,而不管其原值是什么,此时不会自动归档,必须设置USEREXIT,或者再更新LOGARCHMETH1参数为DISK:/xx/xx
3)更改db cfg后,一定要connect reset,否则可能不起作用
4)不用模拟事务,可以利用db2 archive log for db sample 命令来强制归档,同样可以看到归档是否生效
复制只能将服务器上的邮件作一份副本放在本地,在服务器上或本地副本的任何改变都会通过手动或计划的复制来实现同步,对于需要经常出差而无法连接服务器的使用都极为方便一般来说,邮件管理员都会针对每个用户设置一定的QUOTA,那该如何限制自己的邮箱大小不超过数据库呢,而邮件是肯定不断增加的存档(Archive)就是一种很好的方法,存档到本地的文档不像复制,服务器上的邮件在保存到本地后会被删除
使用存档时有两点要注意:
一是存档数据库不会与像复制数据库那样与服务器作同步;
二是每次存档完后,要手动压缩数据库才能真正释放服务器上的空间,其道理类似于SQL数据库在删除后要进行压缩以释放磁盘空间一样
0条评论