设为首页 收藏本站
查看: 1239|回复: 0

[经验分享] Oracle高级复制Step by Step

[复制链接]

尚未签到

发表于 2016-7-29 04:11:30 | 显示全部楼层 |阅读模式
  原创于2008年12月26日,2009年10月19日迁移至此。

  

  Oracle高级复制Step by Step
实施起因
某项目中遇到内外网数据库同步的问题,假设电信机房和某机房网络物理隔绝,需要借助中间服务器进行数据库同步,这个中间服务器既可以是数据库服务器也可以是某种中间件或者某个程序。
因为两头都是Oracle数据库,所以暂时先考虑使用数据库同步的机制来进行预研,当然仅仅是预研而已,距离实施还有一定距离,比如暂时只考虑数据库的单向同步,少量数据的双向同步采用其他方法进行。另外一个目的是为了简化预研的难度,比如省略了发布模板(deploymenttemplate)和冲突解决方案(Conflict Resolution)。
Master site(主站点) Oracle实例为source
Materialized view site(中间站点)Oracle实例为mid
Materialized view site Level2(目标站点)Oracle实例为dest
数据流方向为source->mid, mid->dest
网络连通为source?mid,mid?dest;source<>dest
高级复制中的几个概念
1) replication object:复制对象,指需要作复制的对象(object),包括表,索引,
存储过程等等。复制对象的更新遵循事务一致性规则(transactionally consistent
manner)。
2) replication groups:复制组,是复制对象(replication object)的集合称为group,
oracle 以replication group 的形式来管理复制。一个组可以包含多个模式的object,
一个模式也可以有多个组中的object,但是每个replication object 都只能属于一个
replication group。
3) replication sites:复制站点,包含两种类型,主体站点(master sites)和实
体化视图站点(materialized view sites)。一个site 可以担任一个replication
group 中的mater site 同时又担任另外一个replication group 中的materialized
view site,注意必须是另外一个组,而不能是同一个replication group。
4) scheduled links:一个数据库链接(database link),包含一个由用户定义的计划,
来将需要更新的事务推到其它的master sites,当创建scheduled link 的时候,oracle
将在本地任务队列中创建一个任务。
5) master definition site:主体定义站点,大部分的高级复制配置都需要在一个站
点上作,这个站点就是maserdef site

创建replication站点
设置master主站点
SQL> connect system/inxite@source
已连接。
SQL> --在主站点创建复制管理员帐号
SQL> create user repadmin identified by repadmin;
用户已创建。
SQL> --在主站点给该管理员赋予管理员权限
SQL> begin
2 dbms_repcat_admin.grant_admin_any_schema(
3 username=>'repadmin');
4 end;
5 /
PL/SQL 过程已成功完成。
SQL> --授予相应的权限
SQL> grant comment any table to repadmin;
授权成功。
SQL> grant lock any table to repadmin;
授权成功。
SQL> grant select any dictionary to repadmin;
授权成功。
SQL> --在主站点注册传播用户
SQL> begin
2 dbms_defer_sys.register_propagator(
3 username=>'repadmin');
4 end;
5 /
PL/SQL 过程已成功完成。
SQL> --在主站点注册接受用户
SQL> begin
2 dbms_repcat_admin.register_user_repgroup(
3 username=>'repadmin',
4 privilege_type='receiver',
5 list_of_gnames=>NULL);
6 end;
7 .
PL/SQL 过程已成功完成。
SQL> --设置清除延迟序列的job
SQL> begin
2 dbms_defer_sys.schedule_purge(
3 next_date=>sysdate,
4 interval=>'sysdate+1/24',
5 delay_seconds=>0);
6 end;
7 /
PL/SQL 过程已成功完成。
SQL> --在主站点创建代理物化视图管理员用户
SQL> connect system/inxite@source
已连接。
SQL> create user proxy_mviewadmin identified by proxy_mviewadmin;
用户已创建。
SQL> begin
2 dbms_repcat_admin.register_user_repgroup(
3 username=>'proxy_mviewadmin',
4 privilege_type=>'proxy_snapadmin',
5 list_of_gnames=>NULL);
6 end;
7 /
PL/SQL 过程已成功完成。
SQL> grant select_catalog_role to proxy_mviewadmin;
授权成功。
SQL>--创建代理刷新用户
SQL> create user proxy_refresher identified by proxy_refresher;
用户已创建。
SQL> grant create session to proxy_refresher;
授权成功。
SQL> grant select any table to proxy_refresher;
授权成功。
SQL> spool off


设置物化视图站点
SQL> --Connect as system at materialize view site at mid
SQL> set echo on
SQL> conn system/inxite@mid
已连接。
SQL> --在物化视图站点(中间站点)创建物化视图用户
SQL> --创建物化视图管理员
SQL> create user mviewadmin identified by mviewadmin;
用户已创建。
SQL> begin
2 dbms_repcat_admin.grant_admin_any_schema(
3 username=>'mviewadmin');
4 end;
5 /
PL/SQL 过程已成功完成。
SQL> grant comment any table to mviewadmin;
授权成功。
SQL> grant lock any table to mviewadmin;
授权成功。
SQL> grant select any dictionary to mviewadmin;
授权成功。
SQL> --创建传播者帐号
SQL> create user propagator identified by propagator;
用户已创建。
SQL> begin
2 dbms_defer_sys.register_propagator(
3 username=>'propagator');
4 end;
5 /
PL/SQL 过程已成功完成。
SQL> --创建刷新帐号
SQL> create user refresher identified by refresher;
用户已创建。
SQL> grant create session to refresher;
授权成功。
SQL> grant alter any materialized view to refresher;
授权成功。
SQL> --把物化视图管理员帐号注册为传播者
SQL> begin
2 dbms_repcat_admin.register_user_repgroup(
3 username=>'mviewadmin',
4 privilege_type=>'receiver',
5 list_of_gnames=>NULL);
6 end;
7 /
PL/SQL 过程已成功完成。
SQL>--创建公共数据库链接到master站点(source站点)
SQL> connect system/inxite@mid
已连接。
SQL> create public database link source using 'source';
数据库链接已创建。
SQL> conn mviewadmin/mviewadmin@mid
已连接。
SQL> create database link source connect to proxy_mviewadmin identified by proxy_mviewadmin;
数据库链接已创建。
SQL> select * from tab@source;
未选定行
SQL> --create the propagator/receiver database link;
SQL> connect propagator/propagator@mid;
已连接。
SQL> create database link source connect to repadmin identified by repadmin;
数据库链接已创建。
SQL> --Schedule purge at the mid materialized view site
SQL> conn mviewadmin/mviewadmin@mid
已连接。
SQL> begin
2 dbms_defer_sys.schedule_purge(
3 next_date=>sysdate,
4 interval=>'sysdate+1/24',
5 delay_seconds=>0,
6 rollback_segment=>'');
7 end;
8 /
PL/SQL 过程已成功完成。
SQL> --Schedule push at the mid materialized view site
SQL> conn mviewadmin/mviewadmin@mid
已连接。
SQL> begin
2 dbms_defer_sys.schedule_push(
3 destination=>'source',
4 interval=>'sysdate+1/24',
5 next_date=>sysdate,
6 stop_on_error=>false,
7 parallelism=>0);
8 end;
9 /
PL/SQL 过程已成功完成。
SQL> --create proxy users at the mid materialized view site
SQL> --create proxy materialized view administrator
SQL> connect system/inxite@mid
已连接。
SQL> create user proxy_mviewadmin identified by proxy_mviewadmin;
用户已创建。
SQL> begin
2 dbms_repcat_admin.register_user_repgroup(
3 username=>'proxy_mviewadmin',
4 privilege_type=>'proxy_snapadmin',
5 list_of_gnames=>NULL);
6 end;
7 /
PL/SQL 过程已成功完成。
SQL> grant select_catalog_role to proxy_mviewadmin;
授权成功。
SQL> --Create the proxy refresher
SQL> create user proxy_refresher identified by proxy_refresher;
用户已创建。
SQL> grant create session to proxy_refresher;
授权成功。
SQL> grant select any table to proxy_refresher;
授权成功。
SQL> spool off

设置物化视图站点2
SQL> --connect as system at level 2 materialized view site dest
SQL> connect system/inxite@dest
已连接。
SQL> --create level2 materialized view site users at dest
SQL> create user mviewadmin identified by mviewadmin;
用户已创建。

SQL> begin
2 dbms_repcat_admin.grant_admin_any_schema(
3 username=>'mviewadmin');
4 end;
5 /
PL/SQL 过程已成功完成。
SQL> grant select any dictionary to mviewadmin;
授权成功。
SQL> --create the propagator
SQL> create user propagator identified by propagator;
用户已创建。
SQL> begin
2 dbms_defer_sys.register_propagator(
3 username=>'propagator');
4 end;
5 /
PL/SQL 过程已成功完成。
SQL> --create the refresher
SQL> create user refresher identified by refresher;
用户已创建。
SQL> grant create session to refresher;
授权成功。
SQL> grant alter any materialized view to refresher;
授权成功。
SQL> --create database links to master materialized view site
SQL> --create a public database link
SQL> connect system/inxite@dest
已连接。
SQL> create public database link mid using 'mid';
数据库链接已创建。
SQL> connect mviewadmin/mviewadmin@dest
已连接。
SQL> create database link mid connect to proxy_mviewadmin identified by proxy_mviewadmin;
数据库链接已创建。
SQL> select * from tab@mid;
未选定行
SQL> --create a propagator/receiver database link
SQL> connect propagator/propagator@dest
已连接。
SQL> create database link mid connect to mviewadmin identified by mviewadmin;
数据库链接已创建。
SQL> select * from tab@mid;
未选定行
SQL> --Schedule purge at level 2 materialized view site at dest site
SQL> conn mviewadmin/mviewadmin@dest
已连接。
SQL> begin
2 dbms_defer_sys.schedule_purge(
3 next_date=>sysdate,
4 interval=>'sysdate+1/24',
5 delay_seconds=>0,
6 rollback_segment=>'');
7 end;
8 /
PL/SQL 过程已成功完成。
SQL> --Schedule push at the dest materialized view site
SQL> conn mviewadmin/mviewadmin@dest;
已连接。
SQL> begin
2 dbms_defer_sys.schedule_push(
3 destination=>'mid',
4 interval=>'sysdate+1/24',
5 next_date=>sysdate,
6 stop_on_error=>false,
7 delay_seconds=>0,
8 parallelism=>0);
9 end;
10 /
PL/SQL 过程已成功完成。
SQL> spool off


创建主站点组
SQL> connect repadmin/repadmin@source;
已连接。
SQL> --create the test schema at source master site
SQL> --...
SQL> --create the master group
SQL> begin
2 dbms_repcat.create_master_repgroup(
3 gname=>'test_repg');
4 end;
5 /
PL/SQL 过程已成功完成。
SQL> --add object to master group
SQL>
SQL> BEGIN
2 DBMS_REPCAT.CREATE_MASTER_REPOBJECT (
3 gname => 'test_repg',
4 type => 'TABLE',
5 name => 'test',
6 sname => 'test',
7 use_existing_object => TRUE,
8 copy_rows => FALSE);
9 END;
10 /
PL/SQL 过程已成功完成。
SQL>
SQL> BEGIN
2 DBMS_REPCAT.CREATE_MASTER_REPOBJECT (
3 gname => 'test_repg',
4 type => 'TABLE',
5 name => 'dept',
6 sname => 'test',
7 use_existing_object => TRUE,
8 copy_rows => FALSE);
9 END;
10 /
PL/SQL 过程已成功完成。
SQL> BEGIN
2 DBMS_REPCAT.GENERATE_REPLICATION_SUPPORT (
3 sname => 'test',
4 name => 'test',
5 type => 'TABLE',
6 min_communication => TRUE);
7 END;
8 /
PL/SQL 过程已成功完成。
SQL> BEGIN
2 DBMS_REPCAT.GENERATE_REPLICATION_SUPPORT (
3 sname => 'test',
4 name => 'dept',
5 type => 'TABLE',
6 min_communication => TRUE);
7 END;
8 /
PL/SQL 过程已成功完成。
SQL> --start replication
SQL> begin
2 dbms_repcat.resume_master_activity(
3 gname=>'test_repg');
4 end;
5 /
PL/SQL 过程已成功完成。
SQL> spool off

创建物化视图组

SQL> conn test/test@source;
已连接。
SQL> create materialized view log on test.test;
实体化视图日志已创建。
SQL> create materialized view log on test.dept;
实体化视图日志已创建。
SQL> CONN system/inxite@mid;
已连接。
SQL> CREATE SMALLFILE TABLESPACE "test"
2 DATAFILE 'E:/OracleDB/DBFILE01.DB' SIZE 200M AUTOEXTEND ON NEXT 200M MAXSIZE 8000M
3 LOGGING EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;
表空间已创建。
SQL>CREATE USER "TEST" PROFILE "DEFAULT" IDENTIFIED BY "test" DEFAULTTABLESPACE "test" TEMPORARY TABLESPACE "TEMP" ACCOUNT UNLOCK;
用户已创建。
SQL> GRANT "CONNECT" TO "TEST";
授权成功。
SQL> GRANT "DBA" TO "TEST";
授权成功。
SQL> GRANT "DELETE_CATALOG_ROLE" TO "TEST";
授权成功。
SQL> GRANT "EXECUTE_CATALOG_ROLE" TO "TEST";
授权成功。
SQL> GRANT "EXP_FULL_DATABASE" TO "TEST";
授权成功。
SQL> GRANT "GATHER_SYSTEM_STATISTICS" TO "TEST";
授权成功。
SQL> GRANT "IMP_FULL_DATABASE" TO "TEST";
授权成功。
SQL> GRANT "RESOURCE" TO "TEST";
授权成功。
SQL> GRANT "SCHEDULER_ADMIN" TO "TEST";
授权成功。
SQL> GRANT "SELECT_CATALOG_ROLE" TO "TEST";
授权成功。
SQL> GRANT CREATE PROCEDURE TO TEST;
授权成功。
SQL> GRANT CREATE SEQUENCE TO TEST;
授权成功。
SQL> GRANT CREATE VIEW TO TEST;
授权成功。
SQL> GRANT CREATE SYNONYM TO TEST;
授权成功。
SQL> GRANT ALTER SESSION TO TEST;
授权成功。
SQL> GRANT CREATE MATERIALIZED VIEW TO TEST;
授权成功。
SQL> GRANT ALTER ANY MATERIALIZED VIEW TO TEST;
授权成功。
SQL> GRANT CREATE DATABASE LINK TO TEST;
授权成功。
SQL> grant create session to test;
授权成功。
SQL> grant create table to test;
授权成功。
SQL> conn system/inxite@dest
已连接。
SQL> CREATE SMALLFILE TABLESPACE "test"
2 DATAFILE 'E:/OracleDB/DBFILE01.DB' SIZE 200M AUTOEXTEND ON NEXT 200M MAXSIZE 8000M
3 LOGGING EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;
表空间已创建。
SQL>CREATE USER "TEST" PROFILE "DEFAULT" IDENTIFIED BY "test" DEFAULTTABLESPACE "test" TEMPORARY TABLESPACE "TEMP" ACCOUNT UNLOCK;
用户已创建。
SQL> GRANT "CONNECT" TO "TEST";
授权成功。
SQL> GRANT "DBA" TO "TEST";
授权成功。
SQL> GRANT "DELETE_CATALOG_ROLE" TO "TEST";
授权成功。
SQL> GRANT "EXECUTE_CATALOG_ROLE" TO "TEST";
授权成功。
SQL> GRANT "EXP_FULL_DATABASE" TO "TEST";
授权成功。
SQL> GRANT "GATHER_SYSTEM_STATISTICS" TO "TEST";
授权成功。
SQL> GRANT "IMP_FULL_DATABASE" TO "TEST";
授权成功。
SQL> GRANT "RESOURCE" TO "TEST";
授权成功。
SQL> GRANT "SCHEDULER_ADMIN" TO "TEST";
授权成功。
SQL> GRANT "SELECT_CATALOG_ROLE" TO "TEST";
授权成功。
SQL> GRANT CREATE SESSION TO TEST;
授权成功。
SQL> GRANT CREATE TABLE TO TEST;
授权成功。
SQL> GRANT CREATE PROCEDURE TO TEST;
授权成功。
SQL> GRANT CREATE SEQUENCE TO TEST;
授权成功。
SQL> GRANT CREATE VIEW TO TEST;
授权成功。
SQL> GRANT CREATE SYNONYM TO TEST;
授权成功。
SQL> GRANT ALTER SESSION TO TEST;
授权成功。
SQL> GRANT CREATE MATERIALIZED VIEW TO TEST;
授权成功。
SQL> GRANT ALTER ANY MATERIALIZED VIEW TO TEST;
授权成功。
SQL> GRANT CREATE DATABASE LINK TO TEST;
授权成功。
SQL> connect test/test@mid;
已连接。
SQL> create database link source connect to proxy_refresher identified by proxy_refresher;
数据库链接已创建。
SQL> select * from tab@source;
未选定行
SQL> --create the materialized view group
SQL> connect mviewadmin/mviewadmin@mid;
已连接。
SQL> begin
2 dbms_repcat.create_mview_repgroup(
3 gname=>'test_repg',
4 master=>'source',
5 propagation_mode=>'ASYNCHRONOUS');
6 end;
7 /
PL/SQL 过程已成功完成。
SQL> --create the refresh group
SQL> begin
2 dbms_refresh.make(
3 name=>'mviewadmin.test_repg',
4 list=>'',
5 next_date=>sysdate,
6 interval=>'sysdate+1/24',
7 implicit_destroy=>false,
8 rollback_seg=>'',
9 push_deferred_rpc=>true,
10 refresh_after_errors=>false);
11 end;
12 /

PL/SQL 过程已成功完成。

SQL> --add object to the materialized view group
SQL> create materialized view test.test_mv1
2 refresh fast with primary key for update
3 as select * from test.test@source;
实体化视图已创建。
SQL> create materialized view test.dept_mv1
2 refresh fast with primary key for update
3 as select * from test.dept@source;
实体化视图已创建。
SQL> select * from test.dept_mv1;
ID Name
---------------------------
1 market
2  finacial
SQL> begin
2 dbms_repcat.create_mview_repobject(
3 gname=>'test_repg',
4 sname=>'test',
5 name=>'test_mv1',
6 type=>'SNAPSHOT',
7 min_communication=>true
8 );
9 end;
10 /
PL/SQL 过程已成功完成。
SQL> begin
2 dbms_repcat.create_mview_repobject(
3 gname=>'test_repg',
4 sname=>'test',
5 name=>'dept_mv1',
6 type=>'SNAPSHOT',
7 min_communication=>true);
8 end;
9 /
PL/SQL 过程已成功完成。
SQL> --add objects to the refresh group
SQL> BEGIN
2 DBMS_REFRESH.MAKE (
3 name => 'mviewadmin.test_refg',
4 list => '',
5 next_date => SYSDATE,
6 interval => 'SYSDATE + 1/24',
7 implicit_destroy => FALSE,
8 rollback_seg => '',
9 push_deferred_rpc => TRUE,
10 refresh_after_errors => FALSE);
11 END;
12 /
PL/SQL 过程已成功完成。
SQL> BEGIN
2 DBMS_REFRESH.ADD (
3 name => 'mviewadmin.test_refg',
4 list => 'test.test_mv1',
5 lax => TRUE);
6 END;
7 /
PL/SQL 过程已成功完成。
SQL> BEGIN
2 DBMS_REFRESH.ADD (
3 name => 'mviewadmin.test_refg',
4 list => 'test.dept_mv1',
5 lax => TRUE);
6 END;
7 /
PL/SQL 过程已成功完成。
SQL> --create materilized view logs at the master materialized view site
SQL> connect test/test@mid;
已连接。
SQL> create materialized view log on test.test_mv1;
实体化视图日志已创建。
SQL> create materialized view log on test.dept_mv1;
实体化视图日志已创建。
SQL> connect test/test@dest;
已连接。
SQL> create database link mid connect to proxy_refresher identified by proxy_refresher;
数据库链接已创建。
SQL> select * from tab@mid;
未选定行
SQL> --create the materialized view group
SQL> connect mviewadmin/mviewadmin@dest;
已连接。
SQL> begin
2 dbms_repcat.create_mview_repgroup(
3 gname=>'test_repg',
4 master=>'mid',
5 propagation_mode=>'ASYNCHRONOUS');
6 end;
7 /
PL/SQL 过程已成功完成。
SQL> --create the refresh group
SQL> BEGIN
2 DBMS_REFRESH.MAKE (
3 name => 'mviewadmin.test_refg',
4 list => '',
5 next_date => SYSDATE,
6 interval => 'SYSDATE + 1/24',
7 implicit_destroy => FALSE,
8 rollback_seg => '',
9 push_deferred_rpc => TRUE,
10 refresh_after_errors => FALSE);
11 end;
12 /
PL/SQL 过程已成功完成。
SQL> --add objects to the materialized view group
SQL> create materialized view test.test_mv2
2 refresh fast with primary key for update
3 as select * from test.test_mv1@mid;
实体化视图已创建。
SQL> create materialized view test.dept_mv2
2 refresh fast with primary key for update
3 as select * from test.dept_mv1@mid;
实体化视图已创建。
SQL> --add the materialized view to the materialized view group
SQL> begin
2 dbms_repcat.create_mview_repobject(
3 gname=>'test_repg',
4 sname=>'test',
5 name=>'test_mv2',
6 type=>'SNAPSHOT',
7 min_communication=>true);
8 end;
9 /
PL/SQL 过程已成功完成。
SQL>
SQL> begin
2 dbms_repcat.create_mview_repobject(
3 gname=>'test_repg',
4 sname=>'test',
5 name=>'dept_mv2',
6 type=>'SNAPSHOT',
7 min_communication=>true);
8 end;
9 /
PL/SQL 过程已成功完成。
SQL> --add objects to the refresh group
SQL> begin
2 dbms_refresh.add(
3 name=>'mviewadmin.test_refg',
4 list=>'test.test_mv2',
5 lax=>true);
6 end;
7 /
PL/SQL 过程已成功完成。
SQL> begin
2 dbms_refresh.add(
3 name=>'mviewadmin.test_refg',
4 list=>'test.dept_mv2',
5 lax=>true);
6 end;
7 /
PL/SQL 过程已成功完成。
SQL> spool off


参考文档:
Oracle?? Database Advanced Replication 10g Release 2 (10.2)
Oracle?? Database Advanced Replication Management API Reference 10g Release 2 (10.2)
关于Advanced Replication 的初步研究ITPUB个人空间6}AR`?0|.ne4qXNrPA6517ITPUB个人空间(H'@(xkz�{X{_ITPUB个人空间0~w:D4[`;D:s7m_ITPUB个人空间']2]"mTteITPUB个人空间X-o],?w2F

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-250754-1-1.html 上篇帖子: Oracle分析函数八——CUBE,ROLLUP 下篇帖子: 【oracle 学习笔记 12】 管理存储结构
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表