当前位置: 首页 > news >正文

了解网站基本知识建设网站只能是公司吗

了解网站基本知识,建设网站只能是公司吗,教育培训公司,平面设计和电商设计的区别前言: 最近在对一套Oracle容器数据库进行迁移测试时#xff0c;为了保持新环境与旧环境的服务名一致#xff0c;需要在新环境添加旧环境的服务名#xff0c;在CDB的根容器通过service_name参数添加旧环境的服务名之后#xff0c;发现数据库PDB的服务名全部被注销#xff0…前言: 最近在对一套Oracle容器数据库进行迁移测试时为了保持新环境与旧环境的服务名一致需要在新环境添加旧环境的服务名在CDB的根容器通过service_name参数添加旧环境的服务名之后发现数据库PDB的服务名全部被注销pdb容器也无法再正常的切换过去因此对容器数据库的服务名设置进行了测试以下为测试的过程以及结果​ 测试环境信息 测试环境为12.2版本数据库唯一名为ora12一个pdb为pdb12 SQL show parameter unique ​ NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ db_unique_name string ora12 ​ SQL show pdbs; ​CON_ID CON_NAME OPEN MODE RESTRICTED ---------- ------------------------------ ---------- ----------2 PDB$SEED READ ONLY NO3 PDB12 READ WRITE NO SQL 没有手动设置过的service_names默认的服务名为ora12跟数据库的唯一名一致 SQL show parameter service_name ​ NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ service_names string ora12 ​ ​ select NAME,DISPLAY_VALUE,DEFAULT_VALUE,ISMODIFIED from v$parameter where nameservice_names ​ NAME DISPLAY_VALUE DEFAULT_VALUE ISMODIFIED ------------------------------ ------------------------------ ------------------------------ ---------- service_names ora12 NULL FALSE 此时我们可以看到当前数据库的注册到监听的活跃服务名为cdb容器数据库的的ora12、ora12XDB以及pdb的pdb12服务 --当前我们可以看到注册的服务包括cdb的ora12以及pdb的pdb12 SQL select con_name,name,network_name from v$active_services where NETWORK_NAME is not null; ​ CON_NAME NAME NETWORK_NAME ------------------------------ ------------------------------ -------------------------------------------------- CDB$ROOT ora12 ora12 CDB$ROOT ora12XDB ora12XDB PDB12 pdb12 pdb12 [oraclerac19a ~]$ lsnrctl status ​ Service ora12 has 1 instance(s).Instance ora121, status READY, has 1 handler(s) for this service... Service ora12XDB has 1 instance(s).Instance ora121, status READY, has 1 handler(s) for this service... Service pdb12 has 1 instance(s).Instance ora121, status READY, has 1 handler(s) for this service... The command completed successfully 在容器数据库的根容器下手动设置service_names参数为ora12服务名 SQL alter system set service_namesora12 scopeboth; ​ System altered. ​ SQL show parameter service_names ​ NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ service_names string ORA12 SQL ​ SQL select NAME,DISPLAY_VALUE,DEFAULT_VALUE,ISMODIFIED2 from v$parameter3 where nameservice_names; ​ NAME DISPLAY_VALUE DEFAULT_VALUE ISMODIFIED ------------------------------ ------------------------------ ------------------------------ ---------- service_names ORA12 NULL SYSTEM_MOD 再次查看监听注册的服务可以发现pdb下的pdb12服务被注销了 SQL select con_name,name,network_name from v$active_services where NETWORK_NAME is not null; ​ CON_NAME NAME NETWORK_NAME ------------------------------ ------------------------------ -------------------------------------------------- CDB$ROOT ora12 ora12 CDB$ROOT ora12XDB ora12XDB ​ [oraclerac19a ~]$ lsnrctl status ​ Service ora12 has 1 instance(s).Instance ora121, status READY, has 1 handler(s) for this service... Service ora12XDB has 1 instance(s).Instance ora121, status READY, has 1 handler(s) for this service... The command completed successfully 这种情况下会话手动切换到容器pdb12会出现报错ORA-44787: Service cannot be switched into因为默认的服务为pdb容器但由于pdb现在的默认服务pdb12被注销,所以无法正常切换过去 SQL alter session set containerpdb12; ERROR:ORA-44787: Service cannot be switched into. 可以通过指定CDB的根容器服务名切换过去 SQL alter session set containerpdb12 serviceora12; ​ Session altered. ​ SQL SQL show con_name ​ CON_NAME ------------------------------ PDB12 SQL 那么由于手动设置了service_names导致被注销的pdb服务名怎么恢复呢 可以尝试通过以下四种方法进行恢复 方法一:通过在cdb根容器里面进行注册需要将pdb12的服务名写入参数service_names进行服务注册 --在根容器下设置参数service_names,将pdb的服务名pdb12写入 SQL alter system set service_namesora12,pdb12 scopeboth; ​ System altered. --手动触发服务注册 ​ SQL alter system register; ​ System altered. --可以看到pdb服务名重新被注册 ​ SQL select con_name,name,network_name from v$active_services where NETWORK_NAME is not null; ​ CON_NAME NAME NETWORK_NAME ------------------------------ ------------------------------ -------------------------------------------------- CDB$ROOT ora12 ora12 CDB$ROOT ora12XDB ora12XDB PDB12 pdb12 pdb12 ​ [oraclerac19a ~]$ lsnrctl status ​ Service ora12 has 1 instance(s).Instance ora121, status READY, has 1 handler(s) for this service... Service ora12XDB has 1 instance(s).Instance ora121, status READY, has 1 handler(s) for this service... Service pdb12 has 1 instance(s).Instance ora121, status READY, has 1 handler(s) for this service... The command completed successfully 方法二:通过dbms_service包进行pdb服务名的启动手动开启指定的pdb服务 注dbms_service包是Oracle服务名的管理工具可以创建开启关闭指定的服务名断开或者终止指定服务名下的连接 --首先通过指定根容器层的服务名进入到指定的pdb容器 SQL alter session set containerpdb12 serviceora12; ​ Session altered. ​ --在pdb里面开启服务名即可 exec dbms_service.start_service(pdb12); --可以看到pdb12被重新注册 SQL set linesize 400 SQL set pagesize 400 SQL col name for a30 SQL col CON_NAME for a30 SQL col network_name for a50 SQL select con_name,name,network_name from v$active_services where NETWORK_NAME is not null; ​ CON_NAME NAME NETWORK_NAME ------------------------------ ------------------------------ -------------------------------------------------- PDB12 pdb12 pdb12 ​ ​ [oraclerac19a ~]$ lsnrctl status ​ Service ora12 has 1 instance(s).Instance ora121, status READY, has 1 handler(s) for this service... Service ora12XDB has 1 instance(s).Instance ora121, status READY, has 1 handler(s) for this service... Service pdb12 has 1 instance(s).Instance ora121, status READY, has 1 handler(s) for this service... The command completed successfully 方法三通过配置静态监听服务的方式GLOBAL_DBNAME为pdb服务名SID_NAME为容器数据库的实例名称对于RAC集群要在GRID_HOME下的listener.ora配置 注意:对于通过配置静态监听服务方式连接的通过服务名可以正常的连接到数据库但是由于不是动态注册的服务所以如果不指定根容器的服务名依然无法通过alter session方式切换到pdb容器,还是会出现错误ORA-44787: Service cannot be switched into. SID_LIST_listener (SID_LIST (SID_DESC (GLOBAL_DBNAMEpdb12) (ORACLE_HOME/u01/app/oracle/product/12.0.0/dbhome_1) (SID_NAMEora121))) 方法四通过命令alter system reset service_names scopeboth重置回滚service_names参数重新恢复默认配置需要注意的是执行命令reset之后当前service_names显示的值会变为空并且数据库依然不会注册pdb服务到监听需要重启pdb或者实例数据库才会重新注册pdb服务到监听 总结 通过上述手动设置service_names参数以及恢复方法测试我们可以发现如果pdb的数量较多需要同时去配置多个pdb 服务名服务名的操作管理变得繁琐复杂并且需要留意的是SERVICE_NAMES这个参数从Oracle 19c开始已经废弃后续版本将不再支持也就是说Oracle官方对于19c版本后也开始不建议通过service_name去配置服务名 所以对于后续12c,19c数据库新增服务名的方式特别是容器数据库下通过设置SERVICE_NAMES参数去新增服务名的方式可能并不是一个最佳的选择 那么我们还可以通过选择哪种方式进行服务名的添加呢 如果是RAC集群建议通过srvctl add service 的方式进行添加高可用服务通过集群的高可用服务可以便捷的管理数据库的服务启动关闭以及服务模式实现集群的服务故障转移TAF以及19c的TAC功能 注意无法可以通过srvctl add service方式配置跟pdb容器名称一样的服务名会出现PRCD-1278 : The service name pdb12 cannot be same as the pluggable database default service name pdb12 --非pdb服务名的添加 srvctl add service -d db -s dbsrv -r db1 -a db2 -failovertype select -failovermethod BASIC -failoverdelay 1 -failoverretry 10 srvctl enable service -d db -s dbsrv srvctl start service -d db -s dbsrv --pdb服务名的添加 srvctl add service -d ora12 -s pdb12 -pdb pdb12 -r ora121 -a ora122 -failovertype select -failovermethod BASIC -failoverdelay 1 -failoverretry 10 srvctl enable service -d ora12 -s pdb12 srvctl start service -d ora12 -s pdb12 如果是单机实例可以通过dbms_service方式进行添加service_name表示服务名network_name表示服务在存储在数据字典里面的网络名称单个库里面service_name和network_name都是唯一的不能创建重复的名称 注意: 1 非PDB的重启数据库之后服务不会自己启动需要手动开启 2 RAC, Oracle Restart不建议通过dbms_services进行服务管理在cdb下面测试通过dbms_services发生服务一直无法注册到监听pdb下面测试可以创建服务成功所以最好还是通过srvctl进行服务的创建管理 #非pdb方式添加 exec dbms_service.create_service(service_nametest,network_nametest); exec dbms_service.start_service(test); #pdb实例创建 --切换到pdb里面 alter session set containertestpdb; --创建服务名 exec dbms_service.create_service(service_nametestpdb1,network_nametestpdb1); --开启服务名 exec dbms_service.start_service(testpdb1); alter system register; --保存当前pdb的状态这样在下次重启时服务才能自己启动 alter pluggable database save state; 最后一种方式就是通过通过配置静态监听服务的方式GLOBAL_DBNAME为pdb服务名SID_NAME为容器数据库的实例名称对于RAC集群要在GRID_HOME下的listener.ora配置 --RAC集群要在GRID_HOME下的listener.ora配置 LISTENER(DESCRIPTION(ADDRESS_LIST(ADDRESS(PROTOCOLIPC)(KEYLISTENER)))) # line added by Agent SID_LIST_listener (SID_LIST (SID_DESC (GLOBAL_DBNAMEpdb12) (ORACLE_HOME/u01/app/oracle/product/12.0.0/dbhome_1) (SID_NAMEora121))) --启动之后静态监听的服务名状态为unknown,状态为ready是数据库动态注册的 Service pdb12 has 2 instance(s).Instance ora121, status UNKNOWN, has 1 handler(s) for this service...Instance ora121, status READY, has 1 handler(s) for this service...
http://www.pierceye.com/news/454683/

相关文章:

  • 做公司网站都需要哪些东西产品画册设计公司
  • 网页优化与网站优西安开发网站建设
  • 大连建设监察执法网站免费icp备案服务码
  • 潮州做网站京东网站建设步骤
  • 遂宁模板建站公司懂福溶州做戒网站
  • 百度网站下拉排名农村电商平台发展现状
  • 移动端网站开发与网页开发区别wordpress首页文章显示
  • 有什么网站是layui做的wordpress 微信咨询菜单
  • 湖南网站seo营销x cache wordpress
  • 网站建设太金手指六六十八知名网站建设推荐
  • WordPress找不到站点做好评做销量的网站
  • 网站建设项目经历东莞市官网网站建设企业
  • FileZilla做网站程序开发的难点
  • 网站开发前端制作网站flsh怎么做
  • 建设网站需申请什么手续如何申请公司名称注册
  • 中山网站制无锡公司建立网站
  • 优化推广网站网站建设的岗位职责
  • 网站建设制作设计优化兰州如何用织梦建网站
  • wordpress 网站禁用全屏代码百度怎么建设网站
  • 强军网网站建设北京各大网站推广服务公司
  • 西安优秀的集团门户网站建设公司网站建设中 优秀账户的标准
  • 网站建设的对比分析移动设备网站开发注意点
  • 在word上怎么做网站链接网站开发试题
  • 自己做网站新手入门淮北论坛招聘网
  • 建网站的意义大学跳蚤市场网站建设
  • 平阳做网站成都网站优化公司哪家好
  • 庆阳北京网站建设广东省建设工程执业中心网站
  • 佛山哪里有做网站的大学生文创产品设计
  • 电商网站建设运城网站图片链接怎么做的
  • 服务器建网站教程宁波网络营销推广制作