文档库 最新最全的文档下载
当前位置:文档库 › (zong)oracle stream配置说明文档

(zong)oracle stream配置说明文档

(zong)oracle stream配置说明文档
(zong)oracle stream配置说明文档

O RACLE STREAM配置说明

目录

O RACLE STREAM配置说明 (1)

1 数据库准备 (2)

2 初始化参数 (2)

3 归档模式 (3)

4 创建专用用户/表空间/授权 (4)

5 配置网络(tnsnames.ora) (4)

6 修改数据库全局名称(global_name) (5)

7 建立database link (5)

8 启用追加日志 (5)

9 创建queue (6)

10 创建捕获进程 (6)

11 实例化复制数据库 (7)

12 创建传播(propagation)进程 (7)

13 启动传播进程 (8)

14 创建应用进程 (9)

15 启用Apply进程 (9)

16 启用Capture进程 (9)

17 停止Capture和Apply进程和停止传播 (10)

18 清除所有配置 (10)

19 监听Capture和Apply (11)

20 日常维护 (13)

21 规则定义 (14)

1数据库准备

源数据库:

操作系统:AIX

IP:192.168.10.249

数据库版本:10.2.0.1.0

Oracle_SID:orcl

Global_name:orcl

目标数据库:

操作系统:xp

IP:192.168.10.59

数据库版本:10.2.0.1.0

Oracle_SID:cssbak

Global_name:cssbak

目的:实现源数据库到目标数据库的单向同步。

2初始化参数

在源数据库和目标数据库初始化参数(用DBA用户)

alter system set aq_tm_processes=2 scope=both;

alter system set global_names=true scope=both;

alter system set job_queue_processes=10 scope=both;

alter system set parallel_max_servers=20 scope=both;

alter system set undo_retention=3600 scope=both;

alter system set nls_date_format='YYYY-MM-DD HH24:MI:SS' scope=spfile;

alter system set streams_pool_size=400M scope=spfile;

alter system set utl_file_dir='*' scope=spfile;

alter system set open_links=4 scope=spfile;

shutdown immediate;

startup;

说明:

aq_tm_processes:该值反胃是0-10,0表示停止队列监视,设置2即可

global_names:true表示保证能准确识别database link和数据库的关系

job_queue_processes:指定实例中job队列进程的数量推荐大于4

parallel_max_servers:指定实例中最大并行进程的数量适当的设置为10*CPU#,保证有足够可用并行进程

undo_retention:数据撤销之类的需要使用,3600表示3600秒

streams_pool_size:

大小受到capture进程并行度影响,没增加一个capture进程有必要为流池增

加10M的大小,所以最好设置增加10Mb*parallelism。大小也受到apply进程的并

行度影响,增加一个apply进程有必要为流池增加1M的大小,所以最好设置增加

1Mb*parallelism。logical change record(LCRS)被存储在buffered queues缓存队列中,适当增加Strems pool大小以适应源库和目标库上数据复制的数据量,

SGA_MAX_SIZE参数是SGA总内存的上限.不一定就是被SGA实际全部占用,但SGA

内的各个部分的内存加起来不能超过SGA_MAX_SIZE参数值否则报ORA_00384错

误,SGA参数有SHARED_POOL_SIZE / JAVA_POOL_SIZE / LARGE_POOL_SIZE /

STREAMS_POOL_SIZE / DB_CACHE_SIZESGA_TARGET

所以进行出示华参数的时候首先进行一次查看

select * from v$parameter where name in (

'aq_tm_processes',

'global_names', 'job_queue_processes',

'parallel_max_servers', 'undo_retention',

'nls_date_format', 'streams_pool_size',

'utl_file_dir', 'open_links', 'sga_target',

'sga_max_size') order by name

之后修改源数据库和目标数据库的参数。重启数据库。(scope=spfile需要重启数据库才能生效)

一些错误操作和处理:

如果streams_pool_size设置得过大,会造成数据库不能启动,那么处理如下首先要保证oracle能进去,sqlplus "/as sysdba"

因为spfile文件是二进制不能直接修改,所以要先复制成pfile文件,如果oracle 不能进去,那么先建一个数据库,之后就能修改文件了。

打开成功后就修改里面的东西,之后又把pfile文件复制成spfile文件,之后重启oracle就好了。

create pfile='' from spfile=''

create spfile='' from pfile=''

如果要用指定文件启动oracle那么startup pfile='' 或者startup spfile=''

3归档模式

源数据库必须设置为归档,在此目标数据库是否为归档不会影响。(用DBA用户)

首先查询select name,log_mode from v$database; 查看是否为归档ARCHIVELOG表示归档已经打开

或者sqlplus / as sysdba

archive log list;查看是否为归档Enabled表示归档已经打开。如果没有打开,那么执行如下:

sqlplus / as sysdba

alter system set log_archive_dest_1='location=/u02/oradata/arch' scope=spfile;

alter system set log_archive_start=TRUE scope=spfile;

alter system set log_archive_format='arch%t_%s_%r.arc' scope=spfile;

shutdown immediate;

startup mount;

alter database archivelog;

alter database open;

/u02/oradata/arch自己定义路径。(location不能去掉)

4创建专用用户/表空间/授权

在源数据库和目标数据库创建复制流控制用户,表空间,和对用户授权。(用什么用户都行,只要能创建成功)

创建表空间

create tablespace tbs_stream datafile 'E:\oracle\product\10.2.0\oradata\ORCL\tbs_stream01.dbf' size 100m autoextend on maxsize unlimited segment space management auto;

将logminer的数据字典从system表空间转移到新建的表空间,防止撑满system表空间execute dbms_logmnr_d.set_tablespace('tbs_stream');

创建用户

create user strmadmin identified by strmadmin default tablespace tbs_stream temporary tablespace temp;

授权

grant connect,resource,dba,aq_administrator_role to strmadmin;

begin

dbms_streams_auth.grant_admin_privilege(

grantee => 'strmadmin',

grant_privileges => true);

end;

/

源数据库和目标数据库都执行上面的操作。蓝色的可以根据自己需求修改。在此,假定两个都是一样的。

5配置网络(tnsnames.ora)

在源数据库和目标数据库,分别找到数据库的tnsnames.ora配置文件(注:不是客户端的)。例如路径E:\oracle\product\10.2.0\db_1\NETWORK\ADMIN\tnsnames.ora

在源数据库中新增:

cssbak =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.10.59)(PORT = 1521))

(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME = cssbak)

)

)

在目标数据库新增

orcl249 =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.10.249)(PORT = 1521))

(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME = orcl)

)

)

6修改数据库全局名称(global_name)

首先在源数据库和目标数据库上执行select * from global_name。这时候,查询结果可能有两种类型,例如

https://www.wendangku.net/doc/a714557133.html,

或CSSBAK

如果源数据库和目标数据库类型不一样,那么要进行统一。

执行update props$ set value$ = 'CSS' where name = 'GLOBAL_DB_NAME';那么就会吧global_name改成了CSS。如果类型是一样,但是要改种方式,也可以执行该语句。

当统一之后,那么查看他们的global_name是否是一样的,如果是一样的,那么要进行修改,例如如果两个都是CSSBAK,那么就要对其中一个进行修改。修改方法可用上面的update方法,也可以用alter database rename global_name to CSS。

在此源数据库和目标数据库分别是ORCL/CSSBAK。所以不做修改。

注:不能一样的原因是。当建立database link时候,如果他们的名称一样会出现混淆。

7建立database link

用刚创建的流管理用户进入数据库。

源数据库:

Create database link cssbak connect to strmadmin identified by strmadmin using ‘cssbak’测试select * from dual@cssbak

目标数据库:

Create database link orcl connect to strmadmin identified by strmadmin using ‘orcl249

测试select * from dual@orcl

8启用追加日志

可以基于Database级别或Table级别,启用追加日志(Supplemental Log)。在建立根据Schema粒度进行复制的Oracle Stream 环境中,如果确认Schema 下所有Table 都有合理的主键(Primary Key),则不再需要启用追加日志。

#启用Database 追加日志

alter database add supplemental log data;

#启用Table追加日志

alter table add supplement log group log_group_name(table_column_name) always

9创建queue

分别用创建的strmadmin用户进入源数据库和目标数据库创建流队列

源数据库:

begin

dbms_streams_adm.set_up_queue(

queue_table => 'orcl_queue_table',

queue_name => 'orcl_queue');

end;

目标数据库:

begin

dbms_streams_adm.set_up_queue(

queue_table => 'cssbak_queue_table',

queue_name => 'cssbak_queue');

end;

10创建捕获进程

用strmadmin用户进入源数据库

如果要捕获schema,用xpad用户举例子(XPAD用户在当前数据库必须已经存在,如果要测试连通行,可以创建一个用户和表空间,把表空间权限复制给用户,假定这里XPAD用户已经存在,并且有相应的操作表空间权限)

begin

dbms_streams_adm.add_schema_rules(

schema_name => 'xpad', --用户名称

streams_type => 'capture', --表示是capture

streams_name => 'capture_orcl', --capture名称

queue_name => 'strmadmin.orcl_queue', --刚创建的队列名称

include_dml => true, --dml规则

include_ddl => true, --ddl规则

include_tagged_lcr => false,

source_database => null,

inclusion_rule => true);

end;

如果要捕获table

begin

dbms_streams_adm.add_table_rules(

table_name => 'xpad.ttt', --要捕获的表名称

streams_type => 'capture',

streams_name => 'capture_orcl',

queue_name => 'strmadmin.orcl_queue',

include_dml => true,

include_ddl => true,

inclusion_rule => true);

end;

11实例化复制数据库

实例化数据库有两种方式,第一种是通过exp/imp的方式同步

导出用户数据库

exp userid=xpad/xpad@orcl249file='/tmp/xpad.dmp' object_consistent=y rows=y buffer=80000000

导入用户数据库(要保证目标数据库也有相同的用户和表空间,没有就建立)

imp userid=xpad/xpad@cssbak file='/tmp/xpad.dmp' ignore=y commit=y log='/tmp/xpad.log' streams_instantiation=y fromuser=xpad touser=xpad buffer=80000000

如果是表

在目标数据库用strmadmin登录create table xpad.ttt as select * from xpad@orcl;

第二种方法

如果是表,那么登录目标数据库strmadmin设置应用进程开始执行的SCN

DECLARE

source_scn NUMBER;

BEGIN

source_scn := DBMS_FLASHBACK.GET_SYSTEM_CHANGE_NUMBER();

DBMS_APPLY_ADM.SET_TABLE_INSTANTIATION_SCN@cssbak(

source_object_name=> 'xpad.ttt',

source_database_name=> 'orcl',

instantiation_scn=> source_scn);

END;

12创建传播(propagation)进程

用strmadmin登录源数据库

begin

dbms_streams_adm.add_schema_propagation_rules(

schema_name => 'xpad',

streams_name => 'orcl_to_cssbak', --标识双方

source_queue_name => 'strmadmin.orcl_queue', --从那个队列获取

destination_queue_name =>'strmadmin.cssbak _queue@cssbak ',--放入目标数据库的队列include_dml => true, --传送dml条件

include_ddl => true, --传送ddl条件

include_tagged_lcr => false,

source_database => ‘orcl’, --传送的global_name

inclusion_rule => true);

end;

begin

dbms_aqadm.alter_propagation_schedule(

queue_name => 'orcl_queue',

destination => 'cssbak',

latency => 0);

end;

--修改propagation休眠时间为0,表示实时传播LCR

如果有两个或在多个目标数据库,那么就分别创建多个传播进程,并根据分别需要修改传播方式。

如果是传播表

begin

dbms_streams_adm.add_table_propagation_rules(

table_name => 'xpad.ttt',

streams_name => 'orcl_to_cssbak',

source_queue_name => 'strmadmin.orcl_queue',

destination_queue_name => 'strmadmin.orcl_queue@cssbak',

include_dml => true,

include_ddl => true,

source_database => 'orcl',

inclusion_rule => true,

queue_to_queue => true

);

end;

13启动传播进程

当创建好传播之后,传播进程会自动启动,所以一般可以不执行下面操作,但是如果连接不上远程,可能造成传播异常,查看dba_propagation,如果异常停止或者没有启动,那么就执行下面进行启动传播进程。

begin

dbms_aqadm.enable_propagation_schedule(

queue_name => 'strmadmin.orcl_queue',

destination => 'cssbak'

);

End

14创建应用进程

用strmadmin登录目标数据库

begin

dbms_streams_adm.add_schema_rules(

schema_name => 'xpad', --用户名称

streams_type => 'apply', --标识创建的apply

streams_name => 'apply_cssbak', --apply名称

queue_name => 'strmadmin.cssbak_queue', --接收的队列名称

include_dml => true,

include_ddl => true,

include_tagged_lcr => false,

source_database => 'orcl', --源数据库的global_name inclusion_rule => true);

end;

如果是表

begin

dbms_streams_adm.add_table_rules(

table_name => 'xpad.ttt',

streams_type => 'apply',

streams_name => 'apply_ cssbak',

queue_name => 'strmadmin. cssbak_queue',

include_dml => true,

include_ddl => true,

source_database => 'orcl',

inclusion_rule => true);

end;

15启用Apply进程

begin

dbms_apply_adm.start_apply(

apply_name => 'apply_cssbak');

end;

16启用Capture进程

begin

dbms_capture_adm.start_capture(

capture_name => 'capture_orcl);

end;

整个简单流程完成。

17停止Capture和Apply进程和停止传播

begin

dbms_capture_adm.stop_capture(

capture_name => 'capture_orcl');

end;

begin

dbms_apply_adm.stop_apply(

apply_name => 'apply_cssbak');

end;

begin

dbms_aqadm.disable_propagation_schedule(

queue_name => 'strmadmin.orcl_queue',

destination => 'cssbak'

);

end;

18清除所有配置

用strmadmin用户登录到源数据库和目标数据库。

首先停止Capture和Apply进程。

之后删除Capture和Apply。

begin

dbms_capture_adm.drop_capture(

capture_name => 'capture_orcl');

end;

begin

dbms_apply_adm. drop_apply(

apply_name => 'apply_cssbak');

end;

之后删除传播

begin

dbms_propagation_adm.drop_propagation(

propagation_name => 'orcl_to_cssbak',

drop_unused_rule_sets => true

);

end;

之后删除列队(源数据库和目标数据库)

EXEC

DBMS_STREAMS_ADM.REMOVE_QUEUE(queue_name=> 'orcl_queue ', cascade=>true);

目标数据库同理。

也可以执行快速删除,如下:

之后都执行exec DBMS_STREAMS_ADM.remove_streams_configuration();

19监听Capture和Apply

1、查看capture是否正常运行

SELECT CAPTURE_NAME, QUEUE_NAME, STATUS, CAPTURED_SCN, APPLIED_SCN FROM DBA_CAPTURE;

查看状态status,如果是ENABLED那么就是正常运行。

如果状态是DISABLED,那么capture是停止状态,启用即可。

如果状态是ABORTED,表示capture非正常停止,查看相应的ERROR_NUMBER、ERROR_MESSAGE列可以得到详细的信息,同时,oracle会在跟踪文件中记录该信息。

2、如何知道Captured LCR是否有传播GAP

根据上面的查询结果查看CAPTURED_SCN和APPLIED_SCN字段,如果APPLIED_SCN 小于CAPTURED_SCN,则表示在源数据库端,要么LCR没有被dequeue,要么Propagation 进程尚未传播到目标数据库。

3、查看apply是否正常运行

SELECT apply_name, apply_captured, status FROM dba_apply;

查看status,如果是ENABLED那么就是正常运行。

如果状态是DISABLED,那么apply是停止状态,启用即可。

如果状态是ABORTED,表示apply非正常停止,查看相应的ERROR_NUMBER、ERROR_MESSAGE列可以得到详细的信息,同时,可以查询视图DAB_APPLY_ERROR,了解详细的apply错误信息。

4、看apply队列中是否有数据

如果用脚本执行是

sqlplus -S /nolog <

connect strmadmin/密码;

set linesize 120

prompt *************************************

prompt Number of LCRs in each buffered queue

prompt --------------------------------------------------------------------------------

COLUMN QUEUE_SCHEMA HEADING 'Queue Owner' FORMAT A15

COLUMN QUEUE_NAME HEADING 'Queue Name' FORMAT A20

COLUMN MEM_MSG HEADING 'LCRs in Memory' FORMAT 99999999

COLUMN SPILL_MSGS HEADING 'Spilled LCRs' FORMAT 99999999

COLUMN NUM_MSGS HEADING 'Total Captured LCRs|in Buffered Queue' FORMAT 99999999

SELECT QUEUE_SCHEMA,

QUEUE_NAME,

(NUM_MSGS - SPILL_MSGS) MEM_MSG,

SPILL_MSGS,

NUM_MSGS

FROM V\$BUFFERED_QUEUES;

exit;

EOF

5、整体查看capture和apply状态

根据需要可以适当修改

SELECT '捕获状态' ITEM,STATUS,NVL(ERROR_MESSAGE,'正常') MESSAGE FROM DBA_CAPTURE

UNION ALL

SELECT '传播状态' ITEM,STATUS,NVL(ERROR_MESSAGE,'正常') FROM DBA_PROPAGATION UNION ALL

SELECT '应用状态' ITEM,STATUS,NVL(ERROR_MESSAGE,'正常') FROM DBA_APPLY

UNION ALL

SELECT '————','———————————','———————————' FROM DUAL

UNION ALL

SELECT '实时捕获' ITEM,STATE,TO_CHAR(CAPTURE_MESSAGE_NUMBER) FROM V$STREAMS_CAPTURE

UNION ALL

SELECT '实时应用' ITEM,TO_CHAR(APPLIED_MESSAGE_CREATE_TIME,'YYYY-MM-DD HH24:MI:SS'),TO_CHAR(APPLIED_MESSAGE_NUMBER) FROM DBA_APPLY_PROGRESS

UNION ALL

SELECT '————','———————————','———————————' FROM DUAL

UNION ALL

SELECT '日志组'||TO_CHAR(GROUP#) ITEM,STATUS||'-已归档'||ARCHIVED,TO_CHAR(FIRST_TIME,'YYYY-MM-DD HH24:MI:SS') FROM V$LOG

UNION ALL

SELECT '————','———————————','———————————' FROM DUAL

UNION ALL

SELECT TO_CHAR(THREAD#)||'_ '||TO_CHAR(SEQUENCE#),'FSCN-'||TO_CHAR(FIRST_SCN),TO_CHAR(MODIFIED_TIME,'YYYY-MM-DD HH24:MI:SS') FROM (SELECT * FROM DBA_REGISTERED_ARCHIVED_LOG WHERE TO_CHAR(MODIFIED_TIME,'YYYY-MM-DD')=TO_CHAR(SYSDATE,'YYYY-MM-DD') ORDER BY MODIFIED_TIME DESC)

20日常维护

1、修改捕获进程的参数

begin

dbms_capture_adm.set_parameter(

capture_name => 'capture_orcl',

parameter => '¶meter',

value => '&value');

end;

/

2、修改应用进程的参数

begin

dbms_apply_adm.set_parameter(

apply_name => 'apply_cssbak',

parameter => '¶meter',

value => '&value');

end;

/

3、如果源数据库传播进程停止

查看DBA_PROPAGATION的STATUS状态位

当传播进程停止,比如,连接超时,可能造成传播停止,那么就需要手动启动传播进程。

begin

dbms_aqadm.enable_propagation_schedule(

queue_name => 'strmadmin.orcl_queue',

destination => 'cssbak'

);

end;

/

4、如果捕获进程停止(capture停止)

查看DBA_CAPTURE的STATUS状态位

启用capture进程

begin

dbms_capture_adm.start_capture(

capture_name => 'capture_orcl);

end;

/

5、如果应用进程停止(apply停止)

查看目标数据库DBA_APPLY的STATUS状态位

启用apply进程

begin

dbms_apply_adm.start_apply(

apply_name => 'apply_cssbak');

end;

/

6、如果目标数据库表空间空间不够(复制冲突解决)

会导致apply出错,添加表空间后重启apply时报no data found。经查是因为表空间不足时,oracle在apply一些insert操作时报错,这些失败的LCR被写到一个地方,在重启apply时不会自动重新执行,导致后续对这些插入失败的数据进行更新时出错。解决方法是重新执行失败的操作:

exec dbms_apply_adm.EXECUTE_ALL_ERRORS();

或者

BEGIN

dbms_apply_adm.EXECUTE_ALL_ERRORS(

APPLY_NAME=>’ APPLY_CSSBAK’,

EXECUTE_AS_USER=>false

);

End;

/

执行其中一条

exec dbms_apply_adm.EXECUTE_ERROR(LOCAL_TRANSACTION_ID=>’3.9.887’);

7、删除冲突

a)删除某个阻塞住的错误

从all_apply_error表中查到transaction_id号,然后用以下语句删除

EXEC DBMS_APPLY_ADM.DELETE_ERROR(LOCAL_TRANSACTION_ID=>’3.9.887’);

b)删除所有错误

EXEC DBMS_APPLY_ADM.DELETE_ALL_ERRORS(APPLY_NAME=>’ APPLY_CSSBAK’);

8、解决原始数据不一致问题

复制中,如果源数据和目标数据不一致,会发生错误,如何设置不一致时也覆盖目标表中的数据。

表级:

BEGIN

DBMS_APPLY_https://www.wendangku.net/doc/a714557133.html,PARE_OLD_VALUES(

Object_name=>’user.table’,

Column_list=>’*’,

Operation=>’*’,

Compare=>false,

Apply_database_link=>NULL

);

END;

注:本函数在oracle10g以上版本支持。

21规则定义

1、用户级过滤

如果要当前用户的所有操作,目标数据库都不同步,那么在用户登录后,执行

EXEC DBMS_STREAMS.SET_TAG(HEXTORAW('8888'))。

原理:

在复制中会默认设置TAG=NULL,所以只要用户登录(连接)后,把TAG设置成非空就可以。下面执行的操作将不会被复制至到用户重新连接数据库。

如果要用plsql测试,那么必须在同一个窗口才有效果。可以简化为,例如

begin

DBMS_STREAMS.SET_TAG(HEXTORAW('8888'));

insert into ttt values (6,'sdfsdfsdfsdf');

commit;

end;

2、对单个表进行过滤

对于已经存在的复制进行规则定义。(要用用户strmadmin)

a)首先寻找到存在的控制DML的capture名称和用户

select r.rule_name, r.rule_owner

from dba_rule_set_rules rs, dba_capture c, dba_rules r

where c.rule_set_name=rs.rule_set_name and

c.rule_set_owner=rs.rule_set_owner and

rs.rule_name=r.rule_name and

rs.rule_owner=r.rule_owner and

upper(r.rule_condition) like '%:DML%';

根据查询结果

RULE_NAME RULE_OWNER

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

TTT44 STRMADMIN

再用命令执行

column rule_condition HEADING 'Queue Owner' FORMAT A1000

set long 10000

select rule_condition

from dba_rules

where rule_name='TTT44' and

rule_owner='STRMADMIN';

能看到当前已经定义的规则。

(:dml.get_object_owner() = 'TTT' and not :dml.get_object_name() = 'ttt'

and :dml.is_null_tag() = 'Y' )

停止capture;

execute DBMS_CAPTURE_ADM.STOP_CAPTURE(' capture_orcl');

定义规则

begin

DBMS_RULE_ADM.alter_rule(

'ttt44',

'(:dml.get_object_owner() = ''TTT'' and not ' ||

':dml.get_object_name() = ''ttt'' and ' ||

':dml.is_null_tag() = ''Y'' )');

end;

说明:

'ttt44':上面查询到的RULE_NAME

''TTT'':被捕获的用户

:dml.get_object_name() = ''ttt':对什么表定义规则

':dml.is_null_tag() = ''Y'':规则是否启用;Y表示不启用,N 表示启用(设置为N后,源数据库对表ttt有改动,但是目标数据库不会对表ttt改动)

启用capture

execute DBMS_CAPTURE_ADM.START_CAPTURE(' capture_orcl');

b)

3、对表特殊定义

现在假设,要对用户ttt下的一个表名称为TTT的name属性做控制,当update 时候,如果不做name字段的修改,意思就是源数据库的name做修改,但是目标数据库的name不会改动。这里我们通过控制捕获过程来处理。

首先我们可以创建一个包用来专门控制表的一些特殊处理。

CREATE OR REPLACE PACKAGE strmpkg as

function transform_capture(in_any IN SYS.AnyData) RETURN SYS.AnyData;

END strmpkg;

之后实现

CREATE OR REPLACE PACKAGE BODY strmpkg as

FUNCTION transform_capture(in_any IN SYS.AnyData)

RETURN SYS.AnyData

IS

lcr SYS.LCR$_ROW_RECORD;

rc NUMBER;

ob_owner VARCHAR2(30);

ob_name VARCHAR2(30);

cmd VARCHAR2(10);

newvalue_anydata SYS.AnyData;

oldvalue_anydata SYS.Anydata;

BEGIN

IF in_any.GETTYPENAME='SYS.LCR$_ROW_RECORD' THEN

-- Put the row LCR into lcr

rc := in_any.GETOBJECT(lcr);

-- Get the object owner and name

ob_owner := lcr.GET_OBJECT_OWNER();

ob_name := lcr.GET_OBJECT_NAME();

cmd := lcr.GET_COMMAND_TYPE();

-- insert into strmadmin.logssss values(ob_owner||' ' || cmd|| ' '||ob_name);

commit;

--只对bartholo这个schema 和Update的操作进行转换,其它的放行

IF ob_owner = 'TTT' AND cmd = 'UPDATE' THEN --TTT和UPDATE必须大写

IF ob_name = 'TTT' THEN --TTT必须大写(表名称)

-- Remove the specified column in the LCR

newvalue_anydata := lcr.GET_VALUE('new','name');

oldvalue_anydata := lcr.GET_VALUE('old','name');

IF ( (newvalue_anydata IS NOT NULL) OR (oldvalue_anydata IS NOT NULL) )

THEN

--just only the column existed, u can delte the column

lcr.DELETE_COLUMN(column_name => 'name'); --不对name字段做控制

END IF;

END IF;

END IF;

RETURN SYS.ANYDATA.CONVERTOBJECT(lcr);

END IF;

RETURN in_any;

END transform_capture;

END strmpkg;

包实现后,把这个方法和capture的DML联系起来

DECLARE

capture_dml_rule VARCHAR2(30);

BEGIN

SELECT rule_name INTO capture_dml_rule FROM sys.streams$_rules

WHERE streams_name='CAPTURE_ORCL' and rule_type = 1 AND ROWNUM = 1

ORDER BY rule_name DESC;

DBMS_STREAMS_ADM.set_rule_transform_function(

rule_name => capture_dml_rule,

transform_function => 'strmpkg.transform_capture');

END;

/

把Schema及其包含的对象在2站点上相互做个Instantiation

DECLARE

iscn NUMBER; -- Variable to hold instantiation SCN value

BEGIN

iscn := DBMS_FLASHBACK.GET_SYSTEM_CHANGE_NUMBER();

DBMS_OUTPUT.PUT_LINE('The SCN for db2 and db3: ' || iscn);

DBMS_APPLY_ADM.SET_SCHEMA_INSTANTIATION_SCN@cssbak( --做相应改动

source_schema_name => 'ttt', --用户

source_database_name => 'orcl', --源数据库

instantiation_scn => iscn);

END;

/

4、待加

ORACLE数据库安全规范

数据库安全规范

1概述 1.1适用范围 本规范明确了Oracle数据库安全配置方面的基本要求。 1.2符号和缩略语 2 ORACLE安全配置要求 本规范所指的设备为ORACLE数据库。本规范提出的安全配置要求,在未特别说明的情况下,均适用于ORACLE数据库。 本规范从ORACLE数据库的认证授权功能和其它自身安全配置功能提出安全要求。 2.1账号 ORACLE应提供账号管理及认证授权功能,并应满足以下各项要求。 2.1.1按用户分配帐号

2.1.2删除或锁定无关帐号 2.1.3用户权限最小化 要求内容 在数据库权限配置能力内,根据用户的业务需要,配置其所需的最小权

限。

grant 权限 to user name; revoke 权限 from user name; 2、补充操作说明 用第一条命令给用户赋相应的最小权限 用第二条命令收回用户多余的权限 业务测试正常 4、检测操作 业务测试正常 5、补充说明 2.1.4使用ROLE 管理对象的权限 1. 使用Create Role 命令创建角色。 2.使用用Grant 命令将相应的系统、对象或 Role 的权限赋予应用用户。 2、补充操作说明 对应用用户不要赋予 DBA Role 或不必要的权限。 4、检测操作 1.以DBA 用户登陆到 sqlplus 中。 2.通过查询 dba_role_privs 、dba_sys_privs 和 dba_tab_privs 等视图来检查 是否使用ROLE 来管理对象权限。 5、补充说明 操作指南 1、参考配置操作 检测方法 3、判定条件 要求内容 使用数据库角色(ROLE )来管理对象的权限。 操作指南 1、参考配置操作 检测方法 3、判定条件

Oracle数据库的安装

Oracle 10g 在window 下的安装概述 1.数据库概述 Oracle 应用服务器10g 是集成的、基于标准的软件平台,Oracle Application Server 10g 是继Oracle9i Application Server (Oracle9iAS) Release 2.0 version 9.0.2 和version 9.0.3 之后的最新版本Oracle 应用服务器。 2.安装类型 3.硬件要求 4.软件要求

5.数据库安装 插入光盘后如果安装程序没有自动启动,双击光盘中的setup.exe 文件图标即可启动安装程序(如下图) 基本安装是用于常规的数据安装方法。 全局数据库名:是用于标识数据库的名称。 数据库口令:数据库管理员(sys,system,sysman)的口令(不能为空)。 高级安装用于特定数据库的安装。 选择高级安装,点击下一步 在选择了安装方法(高级安装)之后点击下一步,进入选择数据库安装类型界面(如图)

选择了数据库的安装类型之后,下一步(如图)指定Oracle 目录信息 名称是用于安装完数据库之后在开始菜单程序中显示的名称。路径是用于保存数据库的路径(建议默认)下一步 开始数据库安装条件的查询,当检查完成之后点击下一步(时间较长)

创建数据库是在安装完数据库软件之后就自动开始创建数据库。仅安装数据库,是仅安装数据实例并不创建数据库(在安装完之后再进行创建数据库)。选择创建数据库,点击下一步(如 图)

根据数据库的使用情况选择数据库的配置,并下一步(如图) 输入数据库名及SID。

Oracle 11g静默安装最全文档

Oracle 11g静默安装过程——linux环境 一、硬件环境 1.操作系统及Oracle版本 Linux版本:Redhat 6.4 Oracle版本:Oracle Database 11g Release 2 (11.2.0.1.0) for Linux x86-64 (linux.x64_11gR2_database_1of2.zip、linux.x64_11gR2_database_2of2.zip) 上传到/home下 2.硬件检测: 物理内存不少于1G 硬盘可以空间不少于5G swap分区空间不少于2G 支持256色以上显卡 cpu主频不小于550mHZ cat /etc/issue uname -r grep MemTotal /proc/meminfo grep SwapTotal /proc/meminfo grep "model name" /proc/cpuinfo free df -k /tmp df -k 二、安装操作系统依赖的具体包 以下为Asianux 3, Oracle Linux 5, Red Hat Enterprise Linux 5, CentOS 5 操作系统依赖的包 binutils-2.20.51.0.2-5.11.el6 (x86_64) compat-libcap1-1.10-1 (x86_64) compat-libstdc++-33-3.2.3-69.el6 (x86_64) compat-libstdc++-33-3.2.3-69.el6.i686 gcc-4.4.4-13.el6 (x86_64)

gcc-c++-4.4.4-13.el6 (x86_64) glibc-2.12-1.7.el6 (i686) glibc-2.12-1.7.el6 (x86_64) glibc-devel-2.12-1.7.el6 (x86_64) glibc-devel-2.12-1.7.el6.i686 ksh libgcc-4.4.4-13.el6 (i686) libgcc-4.4.4-13.el6 (x86_64) libstdc++-4.4.4-13.el6 (x86_64) libstdc++-4.4.4-13.el6.i686 libstdc++-devel-4.4.4-13.el6 (x86_64) libstdc++-devel-4.4.4-13.el6.i686 libaio-0.3.107-10.el6 (x86_64) libaio-0.3.107-10.el6.i686 libaio-devel-0.3.107-10.el6 (x86_64) libaio-devel-0.3.107-10.el6.i686 make-3.81-19.el6 sysstat-9.0.4-11.el6 (x86_64) 1.上传依赖包 mkdir /home/rpm 安装依赖包,把Linux安装盘中的rpm包文件传到/home/rpm,Redhat中是Packages文件下。 cd /home/rpm 2.检查安装依赖系统包 rpm -ivh glibc-common*.rpm rpm -ivh kernel-headers*.rpm rpm -ivh libgcc*.rpm rpm -ivh glibc-*.rpm rpm -ivh libgomp-*.rpm rpm -ivh nscd*.rpm rpm -ivh glibc-headers*.rpm rpm -ivh glibc-devel-*.rpm rpm -ivh mpfr*.rpm rpm -ivh ppl*.rpm rpm -ivh cloog-ppl*.rpm rpm -ivh cpp*.rpm rpm -ivh gcc-*.rpm rpm -ivh libstdc++*.rpm rpm -ivh libstdc++-devel*.rpm

Oracle数据库数据对象分析_张达宇

Oracle数据库数据对象分析 日期:2006-01-18 08:00 点击: Oracle数据库数据对象中最基本的是表和视图,其他还有约束、序列、函数、存储过程、包、触发器等。对数据库的操作可以基本归结为对数据对象的操作,理解和掌握Oracle数据库对象是学习Oracle的捷径。 表和视图 Oracle中表是数据存储的基本结构。ORACLE8引入了分区表和对象表,ORACLE8i引入了临时表,使表的功能更强大。视图是一个或多个表中数据的逻辑表达式。本文我们将讨论怎样创建和管理简单的表和视图。 管理表 表可以看作有行和列的电子数据表,表是关系数据库中一种拥有数据的结构。用CREATE TABLE语句建立表,在建立表的同时,必须定义表名,列,以及列的数据类型和大小。例如: 这样我们就建立了一个名为products的表,关键词CREATE TABLE后紧跟的表名,然后定义了三列,同时规定了列的数据类型和大小。 在创建表的同时你可以规定表的完整性约束,也可以规定列的完整性约束,在列上普通的约束是NOT NULL,关于约束的讨论我们在以后进行。 在建立或更改表时,可以给表一个缺省值。缺省值是在增加行时,增加的数据行中某一项值为null时,oracle即认为该值为缺省值。 下列数据字典视图提供表和表的列的信息: . DBA_TABLES . DBA_ALL_TABLES . USER_TABLES . USER_ALL_TABLES . ALL_TABLES . ALL_ALL_TABLES . DBA_TAB_COLUMNS . USER_TAB_COLUMNS . ALL_TAB_COLUMNS 表的命名规则 表名标识一个表,所以应尽可能在表名中描述表,oracle中表名或列名最长可以达30个字符串。表名应该以字母开始,可以在表名中包含数

oracle数据库安全管理制度

竭诚为您提供优质文档/双击可除oracle数据库安全管理制度 篇一:规章制度之数据备份及应急恢复制度 医院信息系统运行与应用管理规章制度汇编 数据备份工作制度及应急恢复工作规定 数据备份工作制度 1、数据备份是备份his系统所有的数据,包括病人费用信息和医疗信息,关系到整个系统的正常运转,影响到全院的医疗工作的正常秩序,责任重大,数据管理员要有高度的事业心、责任感和一丝不苟万无一失的严谨工作作风。 2、严格按照《数据备份方案》要求,逐条认真操作,每天做逻辑备份,每周六作全部备份,每月做一次冷备份. 3、每两周对数据要进行一次恢复试验,以确保备份数据的安全可靠。 4、为了整理数据库,每月对oRacle数据库进行一次expoRt和inpoRt。 5、根据数据增长量,应定期对过期数据进行处理。 6、每天对服务器进行仔细检查,主要查看文件是否有损坏,cpu和内存占用资源情况,客户端登录和访问数据库

是否正常等。 7、如系统发现异常情况,要马上处理,处理不了要立即汇报,并提出建议。 8、严格遵守保密制度和网络管理规范,绝对保密数据管理员口令,当有其他人对服务器进行操作时,要亲自在场并作好详细记录,有第二者知道口令时要及时更改口令。 9、每次对服务器进行操作时,认真作好登录统计,不得马虎。 10、要熟练掌握nt、oRacle数据库知识,不断提高业务水平。 11、数据备份磁带要异地存放,安全保管。 12、如不按规定执行出现重大事故,追究责任者的一切责任并严肃处理。 应急恢复工作规定 1、当计算机网络中心服务器确认出现故障时,由系统管理员,按《数据备份恢复方案》进行系统恢复。 2、系统管理员由信息科主任指定专人负责恢复。当人员变动时应有交接手续。 3、当网络线路不通时,网络系统维护人员应立即到场进行维护,当光纤损坏时应立即使用备用光纤进行恢复,交换机出现故障时,应使用备用交换机,即刻通知前台工作站工作人员使用。

oracle数据库安装及其配置规范标准v0

Oracle数据库系统安装及配置规范 2015-10

目录 1. 数据库物理设计原则 (5) 1.1. 数据库环境配置原则 (5) 1.1.1. 操作系统环境 (5) 1.1.2. 内存要求 (5) 1.1.3. 交换区设计 (5) 1.1.4. 其他 (6) 1.2. 数据库设计原则 (6) 1.2.1. 数据库SID (6) 1.2.2. 数据库全局名 (6) 1.2.3. 数据库类型选择 (6) 1.2.4. 数据库连接类型选择 (7) 1.2.5. 数据库SGA配置 (7) 1.2.6. 数据库字符集选择 (8) 1.2.7. 数据库其他参数配置 (9) 1.2.8. 数据库控制文件配置 (9) 1.2.9. 数据库日志文件配置 (10) 1.2.10. 数据库回滚段配置 (10) 1.2.11. 数据库临时段表空间配置 (11) 1.2.12. 数据库系统表空间配置 (11) 1.3. 数据库表空间设计原则 (11) 1.3.1. 表空间大小定义原则 (11) 1.3.2. 表空间扩展性设计原则 (12) 1.4. 裸设备的使用 (12) 2. 数据库逻辑设计原则 (13) 2.1. 命名规范 (13) 2.1.1. 表属性规范 (13) 2.1.2. 索引 (14) 2.1.3. 视图 (15) 2.1.4. 实体化视图 (15) 2.1.5. 存储过程 (15) 2.1.6. 触发器 (15) 2.1.7. 函数 (16) 2.1.8. 数据包 (16) 2.1.9. 序列 (16) 2.1.10. 表空间 (16) 2.1.11. 数据文件 (16) 2.1.12. 普通变量 (16) 2.1.13. 游标变量 (17) 2.1.14. 记录型变量 (17) 2.1.15. 表类型变量 (17)

Oracle安装注意事项

一、Oracle程序文件和数据文件路径最好分别安装在不同磁盘上,安装数据文件路径的磁盘空间应选择容量大的且专用磁盘(只存放数据)。 二、Oracle安装完毕后,配置PL/SQL: 方法一(适合32位操作系统): 1、安装PL/SQL 2、点击“开始”-----“所有程序”----“Oracle-OraDb11g_home1”----“配置和移植工具”---- “Net Configuration Assistant” 3、选择“本地Net服务名配置”,点击“下一步” 4、选择“添加”,点击“下一步”

5、服务名:输入orcl 点击“下一步”(orcl是安装Oracle时默认的实例) 6、选择“TCP”,点击“下一步”

7、主机名输入本机IP地址,并选择使用标准端口号1521,点击“下一步”(注意如服务器配有双网卡,ip则输入配置为内部局域网的ip地址) 8、选择“是,进行测试”,点击“下一步” 9、点击“更改登录”

10、输入安装Oracle时,设置的system或sys用户密码,点击“确定” 11、出现“测试成功”,点击“下一步” 12、输入网路服务名:一般为orcl,点击“下一步”(服务名可以自由定义,如果配置多Net 个服务,该名称具有唯一性,不能设置相同。)

13、选者“否”,点击“下一步”,否则选“是”继续添加 13、点击“完成” 方法二(适合64位操作系统): 1、打开PL/SQL,不登陆。 2、点击“tool”或(工具)-----“Preferences”或(首选项)

3、选择Oracle----Connection(连接)在orcle home(empty is autodetect)和ocl library(empty is autodetect),输入oraclient配置文件所在路径及oci.dll文件路径。点击“ok”后,关闭PL/SQL重新打开并登陆即可。 注意:需要配置oraclient文件夹中的tnsnames.ora文件 蓝色框中的ORCL为网络服务名,绿色框中的SEIKO为计算机名或ip地址,红色框中的orcl为服务名,根据实际情况修改。如需配置多个,则复制上面这段话修改即可。 注意:64位操作系统,PL/SQL不要安装在C:\Program Files (x86)目录下。

Oracle数据库安全配置规范华为

目录 1概述 (2) 1.1适用范围 (2) 1.2内部适用性说明 .......................................................................................................... 错误!未定义书签。 1.3外部引用说明 .............................................................................................................. 错误!未定义书签。 1.4术语和定义 .................................................................................................................. 错误!未定义书签。 1.5符号和缩略语 (2) 2ORACLE安全配置要求 (2) 2.1账号 (2) 2.2口令 (7) 2.3日志 (11) 2.4其他 (13)

1概述 1.1适用范围 本规范明确了Oracle数据库安全配置方面的基本要求。 1.2符号和缩略语 2ORACLE安全配置要求 本规范所指的设备为ORACLE数据库。本规范提出的安全配置要求,在未特别说明的情况下,均适用于ORACLE数据库。 本规范从ORACLE数据库的认证授权功能、安全日志功能,和其他自身安全配置功能提出安全要求。 2.1账号 ORACLE应提供账号管理及认证授权功能,并应满足以下各项要求。 2.1.1按用户分配帐号

orcle数据库安装详细教程(图解)

刚刚接触ORACLE的人来说,从那里学,如何学,有那些工具可以使用,应该执行什么操作,一定回感到无助。所以在学习使用ORACLE之前,首先来安装一下ORACLE 10g,在来掌握其基本工具。俗话说的好:工欲善其事,必先利其器。我们开始吧! 首先将ORACLE 10g的安装光盘放入光驱,如果自动运行,一般会出现如图1安装界面: 图1 单击“开始安装”,就可以安装ORACLE 10g,一般会检查系统配置是否符合要求,然后出现“Oracle DataBase 10g安装”对话框,如图2所示:

图2 在安装Oracle DataBase 10g时可以选择“基本安装”和“高级安装”两种方法。选择“基本安装”时,“Orac le主目录位置”用于指定Oracle DataBase 10g软件的存放位置;“安装类型”用于指定Oracle产品的安装类型(企业版、标准版和个人版)。如果选择“创建启动数据库”,那就要指定全局数据库名称和数据库用户的口令。 选择“高级安装”,单击“下一步”,会出现“指定文件对话框”,在源路径显示的是安装产品所在的磁盘路径;目标名称用于资定Oracle主目录所对应的环境变量,目标路径用于指定安装Oracle软件的目标安装路径。设置目标名称为:OraDb10g_home1,目标路径为: D:oracleproduct10.1.0db1。如图3:

图3 单击“下一步”,会加载Oracle产品列表,然后出现“选择安装类型”对话框;如图4:

图4 选择安装类型时一般选择“企业版”,单击“下一步”,会出现“选择数据库配置”对话框,如图5 :

Oracle 官方安装文档

rpm -q grep binutils-2.* \ elfutils-libelf-0.* \ glibc-2.* \ glibc-common-2.* \ libaio-0.* \ libgcc-4.* \ libstdc++-4.* \ make-3.* \ compat-libstdc++-33 \ elfutils-libelf-devel-0.* \ glibc-devel-2.* \ gcc-4.* \ gcc-c++-4.* \ libaio-devel-0.* \ libstdc++-devel-4.* \ unixODBC-2.* \ unixODBC-devel-2.* \ sysstat-7.* 2.如缺少相应的补丁包,可以到系统安装盘安装相关的补丁包 cd /media/Enterprise\ Linux\ dvd\ 20090127/Server/ rpm -Uvh grep binutils-2.* rpm -Uvh elfutils-libelf-0.* rpm -Uvh glibc-2.* rpm -Uvh glibc-common-2.* rpm -Uvh libaio-0.* rpm -Uvh libgcc-4.* rpm -Uvh libstdc++-4.* rpm -Uvh make-3.* rpm -Uvh compat-libstdc++-33 rpm -Uvh elfutils-libelf-devel-0.* rpm -Uvh glibc-devel-2.* rpm -Uvh gcc-4.* rpm -Uvh gcc-c++-4.* rpm -Uvh libaio-devel-0.* rpm -Uvh libstdc++-devel-4.* rpm -Uvh unixODBC-2.* rpm -Uvh unixODBC-devel-2.* rpm -Uvh sysstat-7.*

浅谈对的理解对象—关系型数据库

浅谈对对象—关系型数据库的理解 姓名:杨小敏 学号:2010206190026

针对对象—关系型数据库的理解我想结合自己的专业(地图学与地理信息系统)从下面三个方面来理解:(1)关系型数据的发展以及在空间数据管理方面的优缺点(2)面向对象数据库的发展及在空间数据管理方面的优缺点(3)关系型数据库和面向对象技术的融合在数据库发展中所起到的独特作用在我们GIS专业领域内,随着信息技术的发展,各种应用系统建设的不断深入,像现在面向21世纪的应急应用系统的建设、城市基础地理空间信息数据库系统与共享平台的建设、地理信息公共服务平台的建设,小到“数字城市”的建设,大到“数字地球”乃至“智慧地球”的建设,我们已经开始不满足数值和文字的信息处理,为了达到系统建设平台尤其是公共服务平台的建设起到良好的客户友好体验,大量的图形信息,音频信息已经深入到数据库的设计中,其中尤其是空间数据库管理备受瞩目。所以,面对信息爆炸的21世纪,海量数据的存储和管路已经不是传统的数据库能解决的,空间数据管理需要更强的数据库——对象关系型数据库。 为什么空间数据需要对象关系型数据库的管理才更有效?我想简单的说一下GIS空间数据的基本特征:(1)空间特征:每个空间对象都具有空间坐标,所以在存储空间数据的同时我们要考虑数据的空间分布特征;(2)非结构化特征:通用数据库或者是传统数据库数据记录一般是结构化的,在面对空间图形信息的时候难以直接采用关系数据管理系统;(3)空间关系特征:空间数据的空间关系最重要的就是空间拓扑关系,这种拓扑结构方便了空间数据的查询和空间分析,但是给空间数据的一致性和完整性的维护增加了复杂性;(4)海量数据的特征:数据库在面对海量数据的存储和组织时,一般在二维空间上划分块或图幅,在垂直的方向上划分层在组织海量空间数据。 在空间数据的管理技术的发展中,从手工管理管理阶段到文件管理阶段再到数据库管理阶段,在三个数据管理阶段,对数据管理方式也不尽相同,在这里,我想说的是空间数据库的发展历史对空间数据管理的影响,第一是层次关系型数据库:只是数据库发展的初级阶段,这是空间数据的管理大多用文件方式管理,很显然不适合管理海量的空间数据,所以淘汰;第二是网络关系型数据库:在一定程度上解决了空间数据复杂管理的难题,但还是被日益崛起的关系型数据库所淘汰;第三是关系型数据库的发展:为了解决难于保证数据的完整性,开始将空

Oracle数据库安全管理

公司内部 Oracle数据库安全管理 主题:Oracle数据库安全管理 项目名称:公司内部 撰写单位:海鼎 作者:吴昭松 版本号:0.1 日期:2006-3-8 审核 文档历史 参考文档

概述 本文概要性讲述Oracle数据库安全管理,使读者对Oracle的数据库安全管理有所了解。 包含内容: 1、概要文件; 2、管理用户; 3、权限和角色; 概要文件 概要文件是Oracle安全策略的重要组成部分,利用概要文件可以对数据库用户进行基本的资源限制,并且可以对用户的口令进行管理。 概要文件是命名的数据库和系统资源限制集合。通过为数据库用户指定概要文件,可以控制用户在数据库和实例中所能使用的资源。通常DBA会将数据库中用户分为几种类型,为每类用户创建概要文件。一个数据库用户只能指定一个概要文件。 在安装数据库时,Oracle会自动建立名为DEFAULT的默认概要文件,如果在创建新的数据库用户时没有为他指定概要文件,Oracle将自动为他指定这个默认概要文件。另外,如果在用户自定义的概要文件中没有指定某项参数,Oracle将使用DEFAULT概要文件中相应的参数作为默认值。 在概要文件中还可以对用户的口令管理策略进行设置。 资源限制参数 利用概要文件,可以对以下几类数据库和系统资源进行限制: ●CPU时间 ●逻辑读 ●用户的并发会话数 ●空闲时间 ●连接时间 ●私有SGA区 对这些资源的限制是通过在概要文件中设置资源参数来实现的。资源参数的值可以是一个整数,也可以是UNLIMITED(即不受限制),还可以是DEFAULT(使用默认概要文件中的参数设置)。 大部分的资源限制都可以在两个级别进行:会话级或调用级。会话级资源限制是对用户在一个会话过程中所能使用的资源进行的限制,而调用级资源限制是对一条SQL语句在执行过程中所能使用的资源进行的限制。 当会话或一条SQL语句占用的资源超过概要文件中的限制时,Oracle将中止并回退当前的操作,然后向用户返回错误信息。这时用户仍然有机会提交或回退当前的事务。如果受到的是会话级限制,在提交或回退事务后用户会话被中止(断开连接),但是如果受到的是调用级限制,用户会话还能继续进行,只是当前执行的SQL语句被终止。 下面分别介绍在概要文件中使用的各种资源参数: ●SESSIONS_PER_USER 该参数限制每个用户所允许建立的最大并发会话数目。达到这个限制时, 用户不能再建立任何数据库连接。

oracle11g客户端for-linux安装文档

oracle11g client for linux x64 安装文档 1、以root用户登录服务器,新建oinstall组和oracle用户,并为oracle用户设置密码. #groupadd -g 1000 oinstall #useradd -u 1000 -g 1000 -s /bin/csh -d /opt/oracle oracle 2、将客户端安装包linux.x64_11gR1_client.zip上传至服务器剩余空间较大的目录下,解压后的目录为 client,通过root用户授予oracle读取此文件夹的权限。 3、修改服务器配置,以便xmanager登陆. a)用户rcxdm命令查看xdmcp状态是否running # rcxdm status b)编辑“/etc/opt/kde3/share/config/kdm/kdmrc”文件: 在[XDMCP]节中,将“Enable=false”改为“Enable=true”;并且将“port=177”前的屏蔽取消。 c)编辑文件“/etc/sysconfig/displaymanager”: 将DISPLAYMANAGER_REMOTE_ACCESS=“no” 改为DISPLAYMANAGER_REMOTE_ACCESS=“yes”; d)在suse8中需要新建文件/etc/rc.config,在文件中添加一行: ROOT_LOGIN_REMOTE="yes" e)而在suse9中,编辑文件“/etc/sysconfig/displaymanager”: 将DISPLAYMANAGER_ROOT_LOGIN_REMOTE=“no” 改为DISPLAYMANAGER_ROOT_LOGIN_REMOTE=“yes” f)重新启动xdmcp服务 #rcxdm restart g)需要注意:更改登录的上面4、5两条不一样。 4、修改oracle用户环境变量 export ORACLE_BASE=/opt/oracle export ORACLE_HOME=$ORACLE_BASE/product/11g export ORACLE_SID=icd export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$ORACLE_HOME/rdbms/lib:/lib:/usr/lib export PATH=$PATH:/bin:/usr/sbin:/sbin:/usr/X11R6/bin:/usr/lib/java/bin:/usr/local/bin/:$ORACLE_HOME/bin:$ORACL E_HOME/OPatch export TNS_ADMIN=$ORACLE_HOME/network/admin export ORA_CRS_HOME=$ORACLE_HOME/crs export CLASSPATH=$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib:$ORACLE_HOME/network/jlib export NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16GBK" export LANG=en_US export DISPLAY=远程xmanager运行主机:0.0 5、以oracle通过xmanager登陆服务器,进入client安装目录

Oracle 11g安装文档

Oracle 11g数据库安装1.数据库安装 1.1.安装准备 选择Oracle 11g安装程序,进行数据库安装. 安装程序启动后,将会对计算机环境进行检测,将会出现如(图1)的界面 (图1)

1.2.安装方法 Oralce检测完计算机环境后,如果该计算机环境能够安装Oralce 11g, 即会进入Oralce 11g的程序安装界面,如(图2): (图2) 此处, 我们选择高级安装, 以便于稍后的安装过程中,对于我们需要的数据库配置进行相关配置. 选择好了后,点击”下一步”,进入下一步安装操作.

安装方法选择高级安装后, 进入到下一步将要选择数据库的安装类型. (图3) 如(图3)所示,此处,我们选择企业版,该版本具有更好的可靠性,伸缩性以及更好的性能 选择好了后,点击”下一步”,进入下一步安装操作.

接下来,我们需要选择Oracle 11g数据库程序文件的安装位置. (图4) 我们仅需要修改Oracle基目录即可,软件位置中的”名称”以及”路径”会根据Oralce基目录的修改对应自动修改. 注: 在服务器上安装Oracle的时候, Oracle基目录建议选择为C盘,并为Oracle 建立独立的文件目录,如(图4)所示

1.5.先决条件检查 接下来, Oracle安装程序将会对产品特定的先决条件进行自动检查 (图5) 先决条件检查后,部分检查的状态可能会出现”错误”,”未执行”或者”警告”等非正常状态,如(图5)所示. 对于这些状态的检查,我们将其前面的复选框打勾选中,进行手动验证即可,手动验证后,将会如(图6)所示, 状态变为”用户已验证”, 然后,点击”下一步”. (图6)

ORACLE数据库日常维护与管理手册

全球眼(MEGAEYES网络图像管理系统2.0 ORACLE S常维护与管理手册 北京互信互通信息技术有限公司 2004-08-08 目录

1 引言 1.1 目的 对于重要的商业系统来说, 数据库系统的正常运行是保证商业应用平稳运行 的关键。但是 数据库在运行过程中可能会因为种种原因发生问题。 这时,数据库 的管理与日常维护工作将变得尤为重要。 为了指导数据库管理员做好日常维护工作, 保证数据库系统的正常运行, 特 制定本文档。 当然, 数据库的日常维护是复杂和繁琐的, 本文仅涉及一些常见的 数据库日常维护的内容,在实际工作中,数据库管理员还需要做更多的工作。 1.2 范围 本文档使用的人员:数据库维护管理人员和相关人员。 本文档涉及内容: oracle 数据库的 日常维护与管理解决方案。 1.3 参考资料 中国电信网络视频监控技术(暂行)规范 2 日常维护与管理说明 2.1 运行环境 程序的运行环境包括硬件运行环境和软件运行环境。 2.1.1 硬件环境 Intel 及其兼容系列 CPU 剩余内存要达2G 以上 剩余硬盘容量要达 1G 以上 100 M 网卡 2.1.2 软件环境 CPU 类型: 内存容量: 硬盘容量: 网卡类型:

: RedHatLinuxAS3.0 Oracle9iDatabaseRelease2forLinuxx86 2.2数据库日常维护 数据库的日常维护工作主要包括管理员每日的工作内容, 每周的工作内容以 及每月的工作内容。 2.2.1数据库初始设置 基于数据安全性的考虑,需要对数据库进行如下的初始设置。 1数据库设为归档模式 1) 以管理员身份连接数据库 SQL>>connectsys/sys@数据库例程 SIDassysdba 2) 察看数据库是否处于存档模式 SQL>>archiveloglist 说明:该命令会提示以下信息,注意灰色部分显示的状态。 DatabaselogmodeNoArchiveMode AutomaticarchivalDisabled Archivedest in ati on Oldest on li nelogseque nce31 Curren tlogseque nce33 3) 如果处于非归档模式则设为归档模式 SQL>>shutdow nimmediate; SQL>>start upmount; SQL>>alterdatabaseachivelog; 4) 如果处于非自动归档状态则设为自动归档 SQL>>altersystemsetlog_archive_start=TRUESC OP E=s pfile; 5重新启动数据库 SQL>>shutdow nimmediate; SQL>>startu p; 2控制文件设置 每一个数据库都必须有一个控制档。它是一个小型二进制档案,用来描述 Oracle9i 实体结构。主要是储存数据库名称,数据库建立时间,资料文件名称 与所在位置,重置日志文件名称与所在位置,目前的日志序列码 (logsequeneenumber ),检查点信息。因此开启Oracle9i 数据库时一定要读取控 制文件才能取得所有数据库实体档案相关信息。 一旦控制文件不幸毁损,数据库 便无法顺利开启。也因为如此,控制档的管理与维护工作显得格外重要。 通常的设置建议为:每个数据库最好拥有两个以上控制档,并各自存放在不 同磁盘上。系统默认有三个控制文件 controlOl.ctI , control02.ctl , con trol03.ctl 。 如果需要增加更多的控制文件,最简单的方式就是先将既有控制文件复制到 目的位置,然后将控制文件名称加入起始参数档的 CONTROLFILE 之中()。同 理,如果想更改控制档名称,也可以先将控制文件复制到目的位置后予以更名, 再更新操作系统: 数据库:

Oracle数据库安装及运维工作指南(完整资料).doc

【最新整理,下载后即可编辑】 Oracle数据库安装及运维工作指南 金蝶软件(中国)有限公司 K3 CLOUD 基础系统部 2017-04-10 张华福 本文主要强调ORACLE 数据库服务器环境的安装软件及版本,以及安装完成后的后续完善工作。以确保数据库以比较完善的状态投入生产,尽可能避免已知的问题影响生产库的运营。文章不涉及到软件的安装方法步骤。

1 服务器系统软件,数据库版本安装推荐: 1 数据库服务器的操作系统,推荐使用ORACLE LINUX6.8。 2 数据库软件版本,要求安装11204,单节点或RAC环境均可,推荐使用RAC。 2 数据库安装创建完毕后,需要进行下列的完善工作, 1 打上最新的补丁集,如:ORACLE 11204,截止至2017年4月,ORACLE11204 数据库, 当前最新版本的补丁集为20161018 日发布的, p2*******_112040_Linux-x86-64_GI_20161018.zip --rac 版本, p2*******_112040_Linux-x86-64_DB_20161018.zip --纯数据库版。 请按照补丁集上的readme.html,把补丁集打到GI, 数据库上。 2 初始化参数,下面的参数值,只是通常情况下的设置(或可根据服务器的硬件条件自行修改配置),要想系统效率最优,得依据数据库实际的运行情况逐步作微调(注意,下面的命令,在RAC和单节点环境下,稍有不同)。 alter profile default LIMIT PASSWORD_LIFE_TIME UNLIMITED; alter system set processes=500 scope=spfile sid='*'; alter system set control_file_record_keep_time=21 scope=spfile sid='*'; alter system set open_cursors=300 scope=spfile sid='*'; alter system set session_cached_cursors=300 scope=spfile sid='*';

文档:AIX5.3安装ORACLE9I-RAC安装

AIX5.3 + HACMP5.3 install oracle9i 1、安装AIX5.3 ,打PATCH到5304或5305 2、配置AIX网络,HOSTS文件如下: ----------------------------------------------------------------------- 127.0.0.1 loopback localhost # loopback (lo0) name/address 192.168.6.121 orasvra 192.168.6.122 orasvrb 10.1.1.1 orasvra-priv 10.1.1.2 orasvrb-priv ----------------------------------------------------------------------- 3、安装HACMP 注意,安装HACMP的时候,建议不要安装VSD用的pssp rsct.basic.sp &https://www.wendangku.net/doc/a714557133.html,pat.basic.sp和所有的VSD安装包 4、配置HACMP,如下: ----------------------------------------------------------------------- Cluster Name: ora_cluster Cluster Connection Authentication Mode: Standard Cluster Message Authentication Mode: None Cluster Message Encryption: None Use Persistent Labels for Communication: No There are 2 node(s) and 2 network(s) defined NODE orasvra: Network net_diskhb_01 orasvra_hb /dev/hdisk3 Network net_ether_01 orasvra 192.168.6.121 orasvra-priv 10.1.1.1 NODE orasvrb: Network net_diskhb_01 orasvrb_hb /dev/hdisk3 Network net_ether_01 orasvrb-priv 10.1.1.2 orasvrb 192.168.6.122 Resource Group ora_res Startup Policy Online On All Available Nodes Fallover Policy Bring Offline (On Error Node Only) Fallback Policy Never Fallback Participating Nodes orasvrb orasvra -----------------------------------------------------------------------

Oracle数据库安全配置手册

Oracle数据库安全配置手册 Version 1.0

版本控制

目录 第一章目的与范围 (1) 1.1目的 (1) 1.2适用范围 (1) 1.3数据库类型 (1) 第二章数据库安全规范 (1) 2.1操作系统安全 (1) 2.2帐户安全 (2) 2.3密码安全 (2) 2.4访问权限安全 (2) 2.5日志记录 (3) 2.6加密 (3) 2.7管理员客户端安全 (3) 2.8安全补丁 (3) 2.9审计 (3) 第三章数据库安全配置手册 (4) 3.1O RACLE数据库安全配置方法 (4) 3.1.1 基本漏洞加固方法 (4) 3.1.2 特定漏洞加固方法 (12)

第一章目的与范围 1.1 目的 为了加强宝付的数据安全管理,全面提高宝付各业务系统的数据安全水平,保证业务系统的正常运营,提高业务服务质量,特制定本方法。 本文档旨在于规范宝付对各业务系统的Oracle数据库进行安全加固处理。 1.2适用范围 本手册适用于对宝付公司的各业务系统的数据库系统加固进行指导。 1.3数据库类型 数据库类型为Oracle 11g。 第二章数据库安全规范 2.1 操作系统安全 要使数据库安全,首先要使其所在的平台和网络安全。然后就要考虑操作系统的安全性。Oracle使用大量用户不需要直接访问的文件。例如,数据文件和联机重做日志文件只能通过Oracle的后台进程进行读写。因此,只有要创建和删除这些文件的数据库管理员才需要在操作系统级直接访问它们。导出转储文件和其他备份文件也必须受到保护。可以把数据复制到其他数据库上,或者是作为复制模式的一部分,或者是提供一个开发数据库。若要保护数据的安全,就要对数

oracle数据库安装文档

oracle数据库安装文档

概述 内蒙古中行数据库安装:平台red hat 6.6,数据库版本11.2.0.4,升级psu。

一、环境准备 1、安装前准备 1.1编辑/etc/security/limits.conf文件 vi /etc/security/limits.conf oracle soft nproc 2047 oracle hard nproc 16384 oracle soft nofile 1024 oracle hard nofile 65536 1.2配置内核参数(Configure Kernel Parameters) vi /etc/sysctl.conf #kernel.shmmax = 68719476736 #kernel.shmall = 4294967296 fs.aio-max-nr = 1048576 fs.file-max = 6815744 kernel.shmall = 2097152 kernel.shmmax = 4294967295 kernel.shmmni = 4096 kernel.sem = 250 32000 100 128 net.ipv4.ip_local_port_range = 9000 65500 net.core.rmem_default = 262144 net.core.rmem_max = 4194304

net.core.wmem_default = 262144 net.core.wmem_max = 1048586 1.3关闭防火墙并重启系统 vi /etc/selinux/config 1.4创建用户组 1.创建组和用户: groupadd -g 600 oinstall groupadd -g 601 dba groupadd -g 602 oper useradd -m -u 601 -g oinstall -G dba,oper oracle 2.修改用户口令:

相关文档