要部署一个流环境,必要环境设置,以及权限用户的建立是必不可少的。这篇文章简单描述一下建立流环境的前期准备工作。
第一步需要创建一个流管理员,名称并不重要,关键是要授予必要的权限:
SQL> CONN YANGTK@"192.25.1.101/YANGTK.COMPUTE"
输入口令: ******
已连接。
SQL> SELECT * FROM GLOBAL_NAME;
GLOBAL_NAME
------------------------------------------------------------------------------
YANGTK.COMPUTE
SQL> CREATE TABLESPACE STREAMTBS
2 DATAFILE 'E:\ORACLE\ORADATA\YANGTK\STREAMTBS01.DBF' SIZE 1024M;
表空间已创建。
SQL> CREATE USER STRMADMIN IDENTIFIED BY STRMADMIN
2 DEFAULT TABLESPACE STREAMTBS
3 QUOTA UNLIMITED ON STREAMTBS;
用户已创建。
SQL> GRANT DBA TO STRMADMIN;
授权成功。
如果流管理员STRMADMIN需要执行用户的存储过程,那么STRMADMIN还需要通过DBMS_STREAMS_AUTH包来授权:
SQL> CONN SYS@"192.25.1.101/YANGTK.COMPUTE" AS SYSDBA
输入口令: ****
已连接。
SQL> BEGIN
2 DBMS_STREAMS_AUTH.GRANT_ADMIN_PRIVILEGE(
3 GRANTEE => 'STRMADMIN',
4 GRANT_PRIVILEGES => TRUE);
5 END;
6 /
PL/SQL 过程已成功完成。
在所有节点上建立了用户后,就需要创建两个节点间的数据库链,如果是双向复制,那么就需要在两个节点上分别建立指向对方的数据库链,如果是单向复制,需要在源节点上建立指向目标节点的数据库链:
SQL> CONN STRMADMIN/STRMADMIN@192.25.1.101/YANGTK.COMPUTE
已连接。
SQL> CREATE DATABASE LINK STREAM1.COMPUTE
2 CONNECT TO STRMADMIN
3 IDENTIFIED BY STRMADMIN
4 USING 'STREAM1';
数据库链接已创建。
这里只创建了从源数据库YANGTK.COMPUTE到目标数据库STREAM1.COMPUTE的数据库链,如果是双向流环境,或者在实体化的时候需要目标数据库到源数据库的数据库链,那么应该在目标数据库上建立类似的数据库链指向源数据库。
下面建立必要的目录对象,由于流复制的实体化过程可能需要数据泵执行导出操作,因此需要建立DIRECTORY对象:
SQL> CREATE DIRECTORY D_OUTPUT AS 'E:\DMP';
目录已创建。
检查源数据库是否处于归档模式,如果不是归档模式,需要将数据库关闭,至于归档模式后再打开:
SQL> SELECT NAME, LOG_MODE FROM V$DATABASE;
NAME LOG_MODE
--------- ------------
YANGTK ARCHIVELOG
如果需要使用DOWNSTREAM流环境,需要部署源数据库到DOWNSTREAM数据库的归档日志传递方式。如果数据库之间可以之间访问,则只需设置一个LOG_ARCHIVE_DEST_N参数就可以了。
最后需要注意和流相关的初始化参数是否正确的设置,比如STREAMS_POOL_SIZE大小的设置等等,不过数据库中并没有什么额外开关类型的初始化参数控制流,一般来说默认的初始化参数已经可以是流环境正常工作了。
当然9.2版本的流由于存在多个bug,因此必须设置一些初始化参数,甚至包括隐藏参数,这里就不详细描述了。
至此,流环境的准备工作完成。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/4227/viewspace-672091/ ,如需转载,请注明出处,否则将追究法律责任。