主库RAC ASM ,从库RPM包安装 一分钟创建ADG

主库到从库,Oracle SID 一样(可以不一样比如叫orclsty), db name一样(不能不一样,否则控制文件打不开DBFILE),service_name 一样,只有一个不一样,就是DB_UNIQUE_NAME. 这个name放在log_archive_dest_1中使用,log_archive_dest_2中两个都是从库的DB_UNIQUE_NAME。

0.  主库开归档,改ADG参数

ALTER SYSTEM SET LOG_ARCHIVE_CONFIG='DG_CONFIG=(orcl,orclsty)' sid='*';
ALTER SYSTEM SET LOG_ARCHIVE_DEST_1='LOCATION=USE_DB_RECOVERY_FILE_DEST VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=orcl' sid='*';
ALTER SYSTEM SET LOG_ARCHIVE_DEST_2='SERVICE=orclsty ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=orclsty' sid='*';
ALTER SYSTEM SET db_file_name_convert=''+DATA/ORCL/‘,'/u01/app/oracle/orclsty/'
ALTER SYSTEM SET STANDBY_FILE_MANAGEMENT=AUTO sid='*';
ALTER SYSTEM SET FAL_SERVER='orclsty';

convert 设置时可能只要设置+DATA   ,/u01/app/oracle 剩下的目录建一样吧,OMF格式的可以不用,就设置db_create_file_dest='/u01/app/oracle/orclsty/'

SQL> show parameters convert

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_file_name_convert                 string      +DATA/ORCL/, /u01/app/oracle/o
                                                 rclsty/
log_file_name_convert                string      +DATA/ORCL/ONLINELOG/, /u01/ap
                                                 p/oracle/orclsty/
pdb_file_name_convert                string
SQL> 
SQL> show parameter fal

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
fal_client                           string      orcl
fal_server                           string      orclsty
SQL> show parameters log_archive

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
log_archive_config                   string      DG_CONFIG=(orcl,orclsty)
log_archive_dest                     string
log_archive_dest_1                   string      LOCATION=USE_DB_RECOVERY_FILE_
                                                 DEST VALID_FOR=(ALL_LOGFILES,A
                                                 LL_ROLES) DB_UNIQUE_NAME=orcl

log_archive_dest_2                   string      SERVICE=orclsty ASYNC VALID_FO
                                                 R=(ONLINE_LOGFILES,PRIMARY_ROL
                                                 E) DB_UNIQUE_NAME=orclsty

1. 所有RAC 和ADG添加一样的TNS

/u01/app/oracle/product/19.0.0/db_1/network/admin/tnsnames.ora

ORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = rac-scan)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)
    )
  )

ORCLsty =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.200)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SID = ORCL)
    )
  )

2. 从库监听 增加静态注册

# Generated by Oracle configuration tools.

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (GLOBAL_DBNAME = orcl)
      (SID_NAME = orcl)
    )
  )
  

3.主库产生的 init文件去掉RAC开头的和*.cluster_database=false啥也不用改copy到从库,直接启动从库,因为下面一个命令中会生成spfile。

orapwd file=orapworcl password=oracle entries=10 format=12 生成一个pwd文件

*.audit_file_dest='/u01/app/oracle/admin/orcl/adump'
*.audit_trail='db'
*.cluster_database=false
*.compatible='19.0.0'
*.control_files='+DATA/ORCL/CONTROLFILE/current.413.1102109629','+DATA/ORCL/CONTROLFILE/current.412.1102109629'
*.db_block_size=8192
*.db_create_file_dest='+DATA'
*.db_file_name_convert='+DATA/ORCL/','/u01/app/oracle/orclsty/'
*.db_name='orcl'
*.db_recovery_file_dest='+DATA'
*.db_recovery_file_dest_size=8932m
*.diagnostic_dest='/u01/app/oracle'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=orclXDB)'
*.enable_goldengate_replication=TRUE
*.enable_pluggable_database=true
*.fal_server='orclsty'
family:dw_helper.instance_mode='read-only'
orcl1.instance_number=1
orcl2.instance_number=2
orcl3.instance_number=3
*.local_listener='-oraagent-dummy-'
*.log_archive_config='DG_CONFIG=(orcl,orclsty)'
*.log_archive_dest_1='LOCATION=USE_DB_RECOVERY_FILE_DEST VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=orcl'
*.log_archive_dest_2='SERVICE=orclsty ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=orclsty'
*.log_archive_dest_state_1='ENABLE'
*.log_archive_dest_state_2='ENABLE'
*.log_archive_format='%t_%s_%r.dbf'
*.log_file_name_convert='+DATA/ORCL/ONLINELOG/','/u01/app/oracle/orclsty/'
*.nls_language='AMERICAN'
*.nls_territory='AMERICA'
*.open_cursors=300
*.pga_aggregate_target=312m
*.processes=300
*.remote_login_passwordfile='exclusive'
*.resource_manager_plan='DEFAULT_CDB_PLAN'
*.sga_target=936m
*.standby_file_management='AUTO'

  

4.不用file convert,OMF格式的只需要set db_create_file_dest='/u01/app/oracle/orclsty/'

下面这个命令跑完从库就好了。

 rman TARGET sys/oracle@orcl AUXILIARY sys/oracle@orclsty

duplicate target database for standby from active database
spfile
#parameter_value_convert 'orcl','orclsty'
set db_unique_name='orclsty'
set cluster_database='false'
set audit_file_dest='/u01/app/oracle/admin/orcl/adump/'
set diagnostic_dest='/u01/app/oracle/'
set control_files='/u01/app/oracle/orclsty/control01.ctl'
set db_create_online_log_dest_1='/u01/app/oracle/orclsty/'
set db_create_file_dest='/u01/app/oracle/orclsty/'
 set db_recovery_file_dest='/u01/app/oracle/orclsty/'
 set log_archive_max_processes='10'
 set fal_client='orclsty'
 set fal_server='orcl'
 set standby_file_management='AUTO'
 set log_archive_config='dg_config=(orcl,orclsty)'
 set log_archive_dest_1='LOCATION=/u01/app/oracle/orclsty/archivelog VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=orclsty'
 set log_archive_dest_2='service=orcl LGWR ASYNC valid_for=(ONLINE_LOGFILE,PRIMARY_ROLE) db_unique_name=orcl'
 dorecover
nofilenamecheck;

---------输出

RMAN> duplicate target database for standby from active database
2> spfile
3> #parameter_value_convert 'orcl','orclsty'
4> set db_unique_name='orclsty'
5> set cluster_database='false'
6> set audit_file_dest='/u01/app/oracle/admin/orcl/adump/'
7> set diagnostic_dest='/u01/app/oracle/'
8> set control_files='/u01/app/oracle/orclsty/control01.ctl'
9> set db_create_online_log_dest_1='/u01/app/oracle/orclsty/'
10> set db_create_file_dest='/u01/app/oracle/orclsty/'
11>  set db_recovery_file_dest='/u01/app/oracle/orclsty/'
12>  set log_archive_max_processes='10'
13>  set fal_client='orclsty'
14>  set fal_server='orcl'
15>  set standby_file_management='AUTO'
16>  set log_archive_config='dg_config=(orcl,orclsty)'
17>  set log_archive_dest_1='LOCATION=/u01/app/oracle/orclsty/archivelog VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=orclsty'
18>  set log_archive_dest_2='service=orcl LGWR ASYNC valid_for=(ONLINE_LOGFILE,PRIMARY_ROLE) db_unique_name=orcl'
19>  dorecover
20>  nofilenamecheck;

Starting Duplicate Db at 2022-04-18 11:42:29
using target database control file instead of recovery catalog
allocated channel: ORA_AUX_DISK_1
channel ORA_AUX_DISK_1: SID=428 device type=DISK
current log archived

contents of Memory Script:
{
   backup as copy reuse
   passwordfile auxiliary format  '/opt/oracle/product/19c/dbhome_1/dbs/orapworcl'   ;
   restore clone from service  'orcl' spfile to 
 '/opt/oracle/product/19c/dbhome_1/dbs/spfileorcl.ora';
   sql clone "alter system set spfile= ''/opt/oracle/product/19c/dbhome_1/dbs/spfileorcl.ora''";
}
executing Memory Script

Starting backup at 2022-04-18 11:42:38
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=37 instance=orcl1 device type=DISK
Finished backup at 2022-04-18 11:42:44

Starting restore at 2022-04-18 11:42:45
using channel ORA_AUX_DISK_1

channel ORA_AUX_DISK_1: starting datafile backup set restore
channel ORA_AUX_DISK_1: using network backup set from service orcl
channel ORA_AUX_DISK_1: restoring SPFILE
output file name=/opt/oracle/product/19c/dbhome_1/dbs/spfileorcl.ora
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:02
Finished restore at 2022-04-18 11:42:50

sql statement: alter system set spfile= ''/opt/oracle/product/19c/dbhome_1/dbs/spfileorcl.ora''

contents of Memory Script:
{
   sql clone "alter system set  db_unique_name = 
 ''orclsty'' comment=
 '''' scope=spfile";
   sql clone "alter system set  cluster_database = 
 false comment=
 '''' scope=spfile";
   sql clone "alter system set  audit_file_dest = 
 ''/u01/app/oracle/admin/orcl/adump/'' comment=
 '''' scope=spfile";
   sql clone "alter system set  diagnostic_dest = 
 ''/u01/app/oracle/'' comment=
 '''' scope=spfile";
   sql clone "alter system set  control_files = 
 ''/u01/app/oracle/orclsty/control01.ctl'' comment=
 '''' scope=spfile";
   sql clone "alter system set  db_create_online_log_dest_1 = 
 ''/u01/app/oracle/orclsty/'' comment=
 '''' scope=spfile";
   sql clone "alter system set  db_create_file_dest = 
 ''/u01/app/oracle/orclsty/'' comment=
 '''' scope=spfile";
   sql clone "alter system set  db_recovery_file_dest = 
 ''/u01/app/oracle/orclsty/'' comment=
 '''' scope=spfile";
   sql clone "alter system set  log_archive_max_processes = 
 10 comment=
 '''' scope=spfile";
   sql clone "alter system set  fal_client = 
 ''orclsty'' comment=
 '''' scope=spfile";
   sql clone "alter system set  fal_server = 
 ''orcl'' comment=
 '''' scope=spfile";
   sql clone "alter system set  standby_file_management = 
 ''AUTO'' comment=
 '''' scope=spfile";
   sql clone "alter system set  log_archive_config = 
 ''dg_config=(orcl,orclsty)'' comment=
 '''' scope=spfile";
   sql clone "alter system set  log_archive_dest_1 = 
 ''LOCATION=/u01/app/oracle/orclsty/archivelog VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=orclsty'' comment=
 '''' scope=spfile";
   sql clone "alter system set  log_archive_dest_2 = 
 ''service=orcl LGWR ASYNC valid_for=(ONLINE_LOGFILE,PRIMARY_ROLE) db_unique_name=orcl'' comment=
 '''' scope=spfile";
   shutdown clone immediate;
   startup clone nomount;
}
executing Memory Script

sql statement: alter system set  db_unique_name =  ''orclsty'' comment= '''' scope=spfile

sql statement: alter system set  cluster_database =  false comment= '''' scope=spfile

sql statement: alter system set  audit_file_dest =  ''/u01/app/oracle/admin/orcl/adump/'' comment= '''' scope=spfile

sql statement: alter system set  diagnostic_dest =  ''/u01/app/oracle/'' comment= '''' scope=spfile

sql statement: alter system set  control_files =  ''/u01/app/oracle/orclsty/control01.ctl'' comment= '''' scope=spfile

sql statement: alter system set  db_create_online_log_dest_1 =  ''/u01/app/oracle/orclsty/'' comment= '''' scope=spfile

sql statement: alter system set  db_create_file_dest =  ''/u01/app/oracle/orclsty/'' comment= '''' scope=spfile

sql statement: alter system set  db_recovery_file_dest =  ''/u01/app/oracle/orclsty/'' comment= '''' scope=spfile

sql statement: alter system set  log_archive_max_processes =  10 comment= '''' scope=spfile

sql statement: alter system set  fal_client =  ''orclsty'' comment= '''' scope=spfile

sql statement: alter system set  fal_server =  ''orcl'' comment= '''' scope=spfile

sql statement: alter system set  standby_file_management =  ''AUTO'' comment= '''' scope=spfile

sql statement: alter system set  log_archive_config =  ''dg_config=(orcl,orclsty)'' comment= '''' scope=spfile

sql statement: alter system set  log_archive_dest_1 =  ''LOCATION=/u01/app/oracle/orclsty/archivelog VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=orclsty'' comment= '''' scope=spfile

sql statement: alter system set  log_archive_dest_2 =  ''service=orcl LGWR ASYNC valid_for=(ONLINE_LOGFILE,PRIMARY_ROLE) db_unique_name=orcl'' comment= '''' scope=spfile

Oracle instance shut down

connected to auxiliary database (not started)
Oracle instance started

Total System Global Area     981466832 bytes

Fixed Size                     9141968 bytes
Variable Size                255852544 bytes
Database Buffers             713031680 bytes
Redo Buffers                   3440640 bytes

contents of Memory Script:
{
   restore clone from service  'orcl' standby controlfile;
}
executing Memory Script

Starting restore at 2022-04-18 11:43:19
allocated channel: ORA_AUX_DISK_1
channel ORA_AUX_DISK_1: SID=424 device type=DISK

channel ORA_AUX_DISK_1: starting datafile backup set restore
channel ORA_AUX_DISK_1: using network backup set from service orcl
channel ORA_AUX_DISK_1: restoring control file
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:02
output file name=/u01/app/oracle/orclsty/control01.ctl
Finished restore at 2022-04-18 11:43:24

contents of Memory Script:
{
   sql clone 'alter database mount standby database';
}
executing Memory Script

sql statement: alter database mount standby database
RMAN-05538: warning: implicitly using DB_FILE_NAME_CONVERT

contents of Memory Script:
{
   set newname for tempfile  1 to 
 "/u01/app/oracle/orclsty/tempfile/temp.418.1102109655";
   set newname for tempfile  2 to 
 "/u01/app/oracle/orclsty/dcbccb43e10b4ddde0536401a8c0f6aa/tempfile/temp.422.1102110889";
   set newname for tempfile  3 to 
 "/u01/app/oracle/orclsty/dcbd538fd0535edfe0537801a8c0a576/tempfile/temp.393.1102113105";
   switch clone tempfile all;
   set newname for datafile  1 to 
 "/u01/app/oracle/orclsty/datafile/system.408.1102109481";
   set newname for datafile  3 to 
 "/u01/app/oracle/orclsty/datafile/sysaux.409.1102109527";
   set newname for datafile  4 to 
 "/u01/app/oracle/orclsty/datafile/undotbs1.410.1102109553";
   set newname for datafile  5 to 
 "/u01/app/oracle/orclsty/86b637b62fe07a65e053f706e80a27ca/datafile/system.419.1102110827";
   set newname for datafile  6 to 
 "/u01/app/oracle/orclsty/86b637b62fe07a65e053f706e80a27ca/datafile/sysaux.420.1102110827";
   set newname for datafile  7 to 
 "/u01/app/oracle/orclsty/datafile/users.411.1102109553";
   set newname for datafile  8 to 
 "/u01/app/oracle/orclsty/86b637b62fe07a65e053f706e80a27ca/datafile/undotbs1.421.1102110827";
   set newname for datafile  9 to 
 "/u01/app/oracle/orclsty/datafile/undotbs2.423.1102111317";
   set newname for datafile  10 to 
 "/u01/app/oracle/orclsty/datafile/undotbs3.424.1102111317";
   set newname for datafile  11 to 
 "/u01/app/oracle/orclsty/dcbd538fd0535edfe0537801a8c0a576/datafile/system.395.1102113101";
   set newname for datafile  12 to 
 "/u01/app/oracle/orclsty/dcbd538fd0535edfe0537801a8c0a576/datafile/sysaux.394.1102113101";
   set newname for datafile  13 to 
 "/u01/app/oracle/orclsty/dcbd538fd0535edfe0537801a8c0a576/datafile/undotbs1.396.1102113099";
   set newname for datafile  14 to 
 "/u01/app/oracle/orclsty/dcbd538fd0535edfe0537801a8c0a576/datafile/undo_3.392.1102113159";
   set newname for datafile  15 to 
 "/u01/app/oracle/orclsty/dcbd538fd0535edfe0537801a8c0a576/datafile/undo_4.391.1102113161";
   set newname for datafile  16 to 
 "/u01/app/oracle/orclsty/dcbd538fd0535edfe0537801a8c0a576/datafile/users.290.1102113169";
   set newname for datafile  18 to 
 "/u01/app/oracle/orclsty/dcbd538fd0535edfe0537801a8c0a576/datafile/ogg.dbf";
   restore
   from  nonsparse   from service 
 'orcl'   clone database
   ;
   sql 'alter system archive log current';
}
executing Memory Script

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

renamed tempfile 1 to /u01/app/oracle/orclsty/tempfile/temp.418.1102109655 in control file
renamed tempfile 2 to /u01/app/oracle/orclsty/dcbccb43e10b4ddde0536401a8c0f6aa/tempfile/temp.422.1102110889 in control file
renamed tempfile 3 to /u01/app/oracle/orclsty/dcbd538fd0535edfe0537801a8c0a576/tempfile/temp.393.1102113105 in control file

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

Starting restore at 2022-04-18 11:43:30
using channel ORA_AUX_DISK_1

channel ORA_AUX_DISK_1: starting datafile backup set restore
channel ORA_AUX_DISK_1: using network backup set from service orcl
channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_AUX_DISK_1: restoring datafile 00001 to /u01/app/oracle/orclsty/datafile/system.408.1102109481
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:25
channel ORA_AUX_DISK_1: starting datafile backup set restore
channel ORA_AUX_DISK_1: using network backup set from service orcl
channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_AUX_DISK_1: restoring datafile 00003 to /u01/app/oracle/orclsty/datafile/sysaux.409.1102109527
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:26
channel ORA_AUX_DISK_1: starting datafile backup set restore
channel ORA_AUX_DISK_1: using network backup set from service orcl
channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_AUX_DISK_1: restoring datafile 00004 to /u01/app/oracle/orclsty/datafile/undotbs1.410.1102109553
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:04
channel ORA_AUX_DISK_1: starting datafile backup set restore
channel ORA_AUX_DISK_1: using network backup set from service orcl
channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_AUX_DISK_1: restoring datafile 00005 to /u01/app/oracle/orclsty/86b637b62fe07a65e053f706e80a27ca/datafile/system.419.1102110827
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:26
channel ORA_AUX_DISK_1: starting datafile backup set restore
channel ORA_AUX_DISK_1: using network backup set from service orcl
channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_AUX_DISK_1: restoring datafile 00006 to /u01/app/oracle/orclsty/86b637b62fe07a65e053f706e80a27ca/datafile/sysaux.420.1102110827
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:29
channel ORA_AUX_DISK_1: starting datafile backup set restore
channel ORA_AUX_DISK_1: using network backup set from service orcl
channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_AUX_DISK_1: restoring datafile 00007 to /u01/app/oracle/orclsty/datafile/users.411.1102109553
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:02
channel ORA_AUX_DISK_1: starting datafile backup set restore
channel ORA_AUX_DISK_1: using network backup set from service orcl
channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_AUX_DISK_1: restoring datafile 00008 to /u01/app/oracle/orclsty/86b637b62fe07a65e053f706e80a27ca/datafile/undotbs1.421.1102110827
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:04
channel ORA_AUX_DISK_1: starting datafile backup set restore
channel ORA_AUX_DISK_1: using network backup set from service orcl
channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_AUX_DISK_1: restoring datafile 00009 to /u01/app/oracle/orclsty/datafile/undotbs2.423.1102111317
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:04
channel ORA_AUX_DISK_1: starting datafile backup set restore
channel ORA_AUX_DISK_1: using network backup set from service orcl
channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_AUX_DISK_1: restoring datafile 00010 to /u01/app/oracle/orclsty/datafile/undotbs3.424.1102111317
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:02
channel ORA_AUX_DISK_1: starting datafile backup set restore
channel ORA_AUX_DISK_1: using network backup set from service orcl
channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_AUX_DISK_1: restoring datafile 00011 to /u01/app/oracle/orclsty/dcbd538fd0535edfe0537801a8c0a576/datafile/system.395.1102113101
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:07
channel ORA_AUX_DISK_1: starting datafile backup set restore
channel ORA_AUX_DISK_1: using network backup set from service orcl
channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_AUX_DISK_1: restoring datafile 00012 to /u01/app/oracle/orclsty/dcbd538fd0535edfe0537801a8c0a576/datafile/sysaux.394.1102113101
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:17
channel ORA_AUX_DISK_1: starting datafile backup set restore
channel ORA_AUX_DISK_1: using network backup set from service orcl
channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_AUX_DISK_1: restoring datafile 00013 to /u01/app/oracle/orclsty/dcbd538fd0535edfe0537801a8c0a576/datafile/undotbs1.396.1102113099
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:02
channel ORA_AUX_DISK_1: starting datafile backup set restore
channel ORA_AUX_DISK_1: using network backup set from service orcl
channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_AUX_DISK_1: restoring datafile 00014 to /u01/app/oracle/orclsty/dcbd538fd0535edfe0537801a8c0a576/datafile/undo_3.392.1102113159
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:02
channel ORA_AUX_DISK_1: starting datafile backup set restore
channel ORA_AUX_DISK_1: using network backup set from service orcl
channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_AUX_DISK_1: restoring datafile 00015 to /u01/app/oracle/orclsty/dcbd538fd0535edfe0537801a8c0a576/datafile/undo_4.391.1102113161
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:01
channel ORA_AUX_DISK_1: starting datafile backup set restore
channel ORA_AUX_DISK_1: using network backup set from service orcl
channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_AUX_DISK_1: restoring datafile 00016 to /u01/app/oracle/orclsty/dcbd538fd0535edfe0537801a8c0a576/datafile/users.290.1102113169
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:02
channel ORA_AUX_DISK_1: starting datafile backup set restore
channel ORA_AUX_DISK_1: using network backup set from service orcl
channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_AUX_DISK_1: restoring datafile 00018 to /u01/app/oracle/orclsty/dcbd538fd0535edfe0537801a8c0a576/datafile/ogg.dbf
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:03
Finished restore at 2022-04-18 11:46:09

sql statement: alter system archive log current
current log archived

contents of Memory Script:
{
   restore clone force from service  'orcl' 
           archivelog from scn  4650683;
   switch clone datafile all;
}
executing Memory Script

Starting restore at 2022-04-18 11:46:25
using channel ORA_AUX_DISK_1

channel ORA_AUX_DISK_1: starting archived log restore to default destination
channel ORA_AUX_DISK_1: using network backup set from service orcl
channel ORA_AUX_DISK_1: restoring archived log
archived log thread=1 sequence=58
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:01
channel ORA_AUX_DISK_1: starting archived log restore to default destination
channel ORA_AUX_DISK_1: using network backup set from service orcl
channel ORA_AUX_DISK_1: restoring archived log
archived log thread=1 sequence=59
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:02
channel ORA_AUX_DISK_1: starting archived log restore to default destination
channel ORA_AUX_DISK_1: using network backup set from service orcl
channel ORA_AUX_DISK_1: restoring archived log
archived log thread=1 sequence=60
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:01
channel ORA_AUX_DISK_1: starting archived log restore to default destination
channel ORA_AUX_DISK_1: using network backup set from service orcl
channel ORA_AUX_DISK_1: restoring archived log
archived log thread=2 sequence=41
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:02
channel ORA_AUX_DISK_1: starting archived log restore to default destination
channel ORA_AUX_DISK_1: using network backup set from service orcl
channel ORA_AUX_DISK_1: restoring archived log
archived log thread=2 sequence=42
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:01
channel ORA_AUX_DISK_1: starting archived log restore to default destination
channel ORA_AUX_DISK_1: using network backup set from service orcl
channel ORA_AUX_DISK_1: restoring archived log
archived log thread=3 sequence=69
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:01
channel ORA_AUX_DISK_1: starting archived log restore to default destination
channel ORA_AUX_DISK_1: using network backup set from service orcl
channel ORA_AUX_DISK_1: restoring archived log
archived log thread=3 sequence=70
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:02
channel ORA_AUX_DISK_1: starting archived log restore to default destination
channel ORA_AUX_DISK_1: using network backup set from service orcl
channel ORA_AUX_DISK_1: restoring archived log
archived log thread=3 sequence=71
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:02
Finished restore at 2022-04-18 11:46:38

datafile 1 switched to datafile copy
input datafile copy RECID=4 STAMP=1102333598 file name=/u01/app/oracle/orclsty/datafile/system.408.1102109481
datafile 3 switched to datafile copy
input datafile copy RECID=5 STAMP=1102333598 file name=/u01/app/oracle/orclsty/datafile/sysaux.409.1102109527
datafile 4 switched to datafile copy
input datafile copy RECID=6 STAMP=1102333598 file name=/u01/app/oracle/orclsty/datafile/undotbs1.410.1102109553
datafile 5 switched to datafile copy
input datafile copy RECID=7 STAMP=1102333598 file name=/u01/app/oracle/orclsty/86b637b62fe07a65e053f706e80a27ca/datafile/system.419.1102110827
datafile 6 switched to datafile copy
input datafile copy RECID=8 STAMP=1102333598 file name=/u01/app/oracle/orclsty/86b637b62fe07a65e053f706e80a27ca/datafile/sysaux.420.1102110827
datafile 7 switched to datafile copy
input datafile copy RECID=9 STAMP=1102333598 file name=/u01/app/oracle/orclsty/datafile/users.411.1102109553
datafile 8 switched to datafile copy
input datafile copy RECID=10 STAMP=1102333598 file name=/u01/app/oracle/orclsty/86b637b62fe07a65e053f706e80a27ca/datafile/undotbs1.421.1102110827
datafile 9 switched to datafile copy
input datafile copy RECID=11 STAMP=1102333598 file name=/u01/app/oracle/orclsty/datafile/undotbs2.423.1102111317
datafile 10 switched to datafile copy
input datafile copy RECID=12 STAMP=1102333598 file name=/u01/app/oracle/orclsty/datafile/undotbs3.424.1102111317
datafile 11 switched to datafile copy
input datafile copy RECID=13 STAMP=1102333598 file name=/u01/app/oracle/orclsty/dcbd538fd0535edfe0537801a8c0a576/datafile/system.395.1102113101
datafile 12 switched to datafile copy
input datafile copy RECID=14 STAMP=1102333598 file name=/u01/app/oracle/orclsty/dcbd538fd0535edfe0537801a8c0a576/datafile/sysaux.394.1102113101
datafile 13 switched to datafile copy
input datafile copy RECID=15 STAMP=1102333598 file name=/u01/app/oracle/orclsty/dcbd538fd0535edfe0537801a8c0a576/datafile/undotbs1.396.1102113099
datafile 14 switched to datafile copy
input datafile copy RECID=16 STAMP=1102333598 file name=/u01/app/oracle/orclsty/dcbd538fd0535edfe0537801a8c0a576/datafile/undo_3.392.1102113159
datafile 15 switched to datafile copy
input datafile copy RECID=17 STAMP=1102333598 file name=/u01/app/oracle/orclsty/dcbd538fd0535edfe0537801a8c0a576/datafile/undo_4.391.1102113161
datafile 16 switched to datafile copy
input datafile copy RECID=18 STAMP=1102333598 file name=/u01/app/oracle/orclsty/dcbd538fd0535edfe0537801a8c0a576/datafile/users.290.1102113169
datafile 18 switched to datafile copy
input datafile copy RECID=19 STAMP=1102333598 file name=/u01/app/oracle/orclsty/dcbd538fd0535edfe0537801a8c0a576/datafile/ogg.dbf

contents of Memory Script:
{
   set until scn  4651879;
   recover
   standby
   clone database
    delete archivelog
   ;
}
executing Memory Script

executing command: SET until clause

Starting recover at 2022-04-18 11:46:38
using channel ORA_AUX_DISK_1

starting media recovery

archived log for thread 1 with sequence 59 is already on disk as file /u01/app/oracle/orclsty/archivelog1_59_1102109633.dbf
archived log for thread 1 with sequence 60 is already on disk as file /u01/app/oracle/orclsty/archivelog1_60_1102109633.dbf
archived log for thread 2 with sequence 41 is already on disk as file /u01/app/oracle/orclsty/archivelog2_41_1102109633.dbf
archived log for thread 2 with sequence 42 is already on disk as file /u01/app/oracle/orclsty/archivelog2_42_1102109633.dbf
archived log for thread 3 with sequence 70 is already on disk as file /u01/app/oracle/orclsty/archivelog3_70_1102109633.dbf
archived log for thread 3 with sequence 71 is already on disk as file /u01/app/oracle/orclsty/archivelog3_71_1102109633.dbf
archived log file name=/u01/app/oracle/orclsty/archivelog1_59_1102109633.dbf thread=1 sequence=59
archived log file name=/u01/app/oracle/orclsty/archivelog2_41_1102109633.dbf thread=2 sequence=41
archived log file name=/u01/app/oracle/orclsty/archivelog3_70_1102109633.dbf thread=3 sequence=70
archived log file name=/u01/app/oracle/orclsty/archivelog1_60_1102109633.dbf thread=1 sequence=60
archived log file name=/u01/app/oracle/orclsty/archivelog3_71_1102109633.dbf thread=3 sequence=71
archived log file name=/u01/app/oracle/orclsty/archivelog2_42_1102109633.dbf thread=2 sequence=42
media recovery complete, elapsed time: 00:00:00
Finished recover at 2022-04-18 11:46:41

contents of Memory Script:
{
   delete clone force archivelog all;
}
executing Memory Script

released channel: ORA_DISK_1
released channel: ORA_AUX_DISK_1
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=37 instance=orcl1 device type=DISK
deleted archived log
archived log file name=/u01/app/oracle/orclsty/archivelog1_58_1102109633.dbf RECID=1 STAMP=1102333586
deleted archived log
archived log file name=/u01/app/oracle/orclsty/archivelog1_59_1102109633.dbf RECID=2 STAMP=1102333588
deleted archived log
archived log file name=/u01/app/oracle/orclsty/archivelog1_60_1102109633.dbf RECID=3 STAMP=1102333589
deleted archived log
archived log file name=/u01/app/oracle/orclsty/archivelog2_41_1102109633.dbf RECID=4 STAMP=1102333591
deleted archived log
archived log file name=/u01/app/oracle/orclsty/archivelog2_42_1102109633.dbf RECID=5 STAMP=1102333592
deleted archived log
archived log file name=/u01/app/oracle/orclsty/archivelog3_69_1102109633.dbf RECID=6 STAMP=1102333594
deleted archived log
archived log file name=/u01/app/oracle/orclsty/archivelog3_70_1102109633.dbf RECID=7 STAMP=1102333595
deleted archived log
archived log file name=/u01/app/oracle/orclsty/archivelog3_71_1102109633.dbf RECID=8 STAMP=1102333597
Deleted 8 objects

Finished Duplicate Db at 2022-04-18 11:47:29

RMAN>

5. 检查

[oracle@o19c dbs]$ sqlplus '/as sysdba'

SQL*Plus: Release 19.0.0.0.0 - Production on Mon Apr 18 12:17:52 2022
Version 19.3.0.0.0

Copyright (c) 1982, 2019, Oracle.  All rights reserved.


Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0

SQL> select open_mode from v$database;

OPEN_MODE
----------------------------------------
MOUNTED

SQL> alter database open;

Database altered.

SQL> select log_mode,open_mode ,database_role from v$database;

LOG_MODE                 OPEN_MODE
------------------------ ----------------------------------------
DATABASE_ROLE
--------------------------------
ARCHIVELOG               READ ONLY
PHYSICAL STANDBY


SQL> alter database recover managed standby database using current logfile disconnect from session;

Database altered.

SQL> select open_mode from v$database;

OPEN_MODE
----------------------------------------
READ ONLY WITH APPLY

SQL> 

6.  主备切换

-- 正常切换:主库:
SQL> SELECT SWITCHOVER_STATUS FROM V$DATABASE;

-- 备库:
SQL> SELECT SWITCHOVER_STATUS FROM V$DATABASE;

-- 主切备 主:

SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO PHYSICAL standby;

SQL> startup nomount;

SQL> alter database mount standby database;

SQL> ALTER DATABASE RECOVER MANAGED standby DATABASE DISCONNECT FROM SESSION;

-- 备切主 备:

SQL> SELECT SWITCHOVER_STATUS FROM V$DATABASE;

SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO primary;

SQL> select status from v$instance;

SQL> alter database open;

-- 打开备库

---主库记录

[oracle@rac3 dbs]$ sqlplus '/as sysdba'

SQL*Plus: Release 19.0.0.0.0 - Production on Mon Apr 18 12:20:25 2022
Version 19.3.0.0.0

Copyright (c) 1982, 2019, Oracle.  All rights reserved.


Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0

SQL> SELECT SWITCHOVER_STATUS FROM V$DATABASE;

SWITCHOVER_STATUS
--------------------
TO STANDBY

SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO PHYSICAL standby;

Database altered.

SQL> startup nomount;
ORACLE instance started.

Total System Global Area  981466832 bytes
Fixed Size                  9141968 bytes
Variable Size             566231040 bytes
Database Buffers          402653184 bytes
Redo Buffers                3440640 bytes
SQL>  alter database mount standby database;

Database altered.

SQL> ALTER DATABASE RECOVER MANAGED standby DATABASE DISCONNECT FROM SESSION;

Database altered.

SQL> 

备库记录

[oracle@o19c dbs]$ sqlplus '/as sysdba'

SQL*Plus: Release 19.0.0.0.0 - Production on Mon Apr 18 12:17:52 2022
Version 19.3.0.0.0

Copyright (c) 1982, 2019, Oracle.  All rights reserved.


Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0

SQL> select open_mode from v$database;

OPEN_MODE
----------------------------------------
MOUNTED

SQL> alter database open;

Database altered.

SQL> select log_mode,open_mode ,database_role from v$database;

LOG_MODE                 OPEN_MODE
------------------------ ----------------------------------------
DATABASE_ROLE
--------------------------------
ARCHIVELOG               READ ONLY
PHYSICAL STANDBY


SQL> alter database recover managed standby database using current logfile disconnect from session;

Database altered.

SQL> select open_mode from v$database;

OPEN_MODE
----------------------------------------
READ ONLY WITH APPLY

SQL> SELECT SWITCHOVER_STATUS FROM V$DATABASE;

SWITCHOVER_STATUS
----------------------------------------
NOT ALLOWED

SQL> SELECT SWITCHOVER_STATUS FROM V$DATABASE;

SWITCHOVER_STATUS
----------------------------------------
TO PRIMARY

SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO primary;

Database altered.

SQL> select status from v$instance;

STATUS
------------------------
MOUNTED

SQL> alter database open;

Database altered.

SQL> 

[root@rac2 ~]# crsctl stat res -t 
--------------------------------------------------------------------------------
Name           Target  State        Server                   State details       
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.LISTENER.lsnr
               ONLINE  ONLINE       rac1                     STABLE
               ONLINE  ONLINE       rac2                     STABLE
               ONLINE  ONLINE       rac3                     STABLE
ora.chad
               ONLINE  ONLINE       rac1                     STABLE
               ONLINE  ONLINE       rac2                     STABLE
               ONLINE  ONLINE       rac3                     STABLE
ora.net1.network
               ONLINE  ONLINE       rac1                     STABLE
               ONLINE  ONLINE       rac2                     STABLE
               ONLINE  ONLINE       rac3                     STABLE
ora.ons
               ONLINE  ONLINE       rac1                     STABLE
               ONLINE  ONLINE       rac2                     STABLE
               ONLINE  ONLINE       rac3                     STABLE
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.ASMNET1LSNR_ASM.lsnr(ora.asmgroup)
      1        ONLINE  ONLINE       rac2                     STABLE
      2        ONLINE  ONLINE       rac3                     STABLE
      3        ONLINE  ONLINE       rac1                     STABLE
ora.DATA.dg(ora.asmgroup)
      1        ONLINE  ONLINE       rac2                     STABLE
      2        ONLINE  ONLINE       rac3                     STABLE
      3        ONLINE  ONLINE       rac1                     STABLE
ora.LISTENER_SCAN1.lsnr
      1        ONLINE  ONLINE       rac3                     STABLE
ora.asm(ora.asmgroup)
      1        ONLINE  ONLINE       rac2                     Started,STABLE
      2        ONLINE  ONLINE       rac3                     Started,STABLE
      3        ONLINE  ONLINE       rac1                     Started,STABLE
ora.asmnet1.asmnetwork(ora.asmgroup)
      1        ONLINE  ONLINE       rac2                     STABLE
      2        ONLINE  ONLINE       rac3                     STABLE
      3        ONLINE  ONLINE       rac1                     STABLE
ora.cvu
      1        ONLINE  ONLINE       rac3                     STABLE
ora.orcl.db
      1        OFFLINE OFFLINE                               Instance Shutdown,ST
                                                             ABLE
      2        OFFLINE OFFLINE                               Instance Shutdown,ST
                                                             ABLE
      3        ONLINE  INTERMEDIATE rac3                     STABLE
ora.qosmserver
      1        ONLINE  ONLINE       rac3                     STABLE
ora.rac1.vip
      1        ONLINE  ONLINE       rac1                     STABLE
ora.rac2.vip
      1        ONLINE  ONLINE       rac2                     STABLE
ora.rac3.vip
      1        ONLINE  ONLINE       rac3                     STABLE
ora.scan1.vip
      1        ONLINE  ONLINE       rac3                     STABLE
--------------------------------------------------------------------------------

遇到错误:

1.  ORA-17629: Cannot connect to the remote database server

executing Memory Script

Starting backup at 2022-04-17 16:13:57
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=9 instance=orcl3 device type=DISK
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of Duplicate Db command at 04/17/2022 16:14:05
RMAN-05501: aborting duplication of target database
RMAN-03015: error occurred in stored script Memory Script
RMAN-03009: failure of backup command on ORA_DISK_1 channel at 04/17/2022 16:14:05
ORA-17627: ORA-12154: TNS:could not resolve the connect identifier specified
ORA-17629: Cannot connect to the remote database server

从库没有启动,但是在主库也要配置tns  主库监听不配没关系

Double check using the following commands on the TARGET and AUXILIARY

% tnsping <target_db>
% tnsping <auxiliary_db>


Once this is executed for the TARGET and AUXILIARY, it should return the same 'connect' information.

        Possible Cause 2:         Mismatch of Parameters DEFAULT_DOMAIN and DB_DOMAIN         db_domain=PROD.world         # init<SID>.ora         default_domain=PROD.WORLD    # sqlnet.ora         # DEFAULT_DOMAIN defined on sqlnet.ora is 'case' sensitive and when defined must match            DB_DOMAIN initialization parameter

    Solution

        1. To be sure that the tnsnames.ora file of each machine (machine where is the source database and machine where is the auxiliary  database) has the service name to connect to auxiliary database.

2. nomount rman下不生效,还有sqlplus 此时的预期行为


Starting Duplicate Db at 2022-04-17 17:13:33
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of Duplicate Db command at 04/17/2022 17:13:33
RMAN-05501: aborting duplication of target database
RMAN-06403: could not obtain a fully authorized session
RMAN-04006: error from auxiliary database: ORA-01034: ORACLE not available
ORA-27101: shared memory realm does not exist
Linux-x86_64 Error: 2: No such file or directory
Additional information: 4376
Additional information: -944257393

RMAN> startup nomount 
还是报错

[oracle@o19c ~]$ echo $ORACLE_SID
orclsty
[oracle@o19c ~]$ sqlplus '/as sysdba'
Connected to an idle instance.

SQL> startup nomount
ORACLE instance started.

Disconnected from Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0
[oracle@o19c ~]$ rman TARGET sys/oracle@orcl AUXILIARY sys/oracle@orclsty
connected to target database: ORCL (DBID=1629890365)
connected to auxiliary database: ORCL (not mounted)

RMAN> 

[oracle@o19c ~]$ sqlplus sys/oracle@orcl

SQL*Plus: Release 19.0.0.0.0 - Production on Sun Apr 17 17:15:41 2022
Version 19.3.0.0.0

Copyright (c) 1982, 2019, Oracle.  All rights reserved.

ERROR:
ORA-28009: connection as SYS should be as SYSDBA or SYSOPER--认证通过了

[oracle@o19c ~]$ sqlplus sys/oracle@orclsty

SQL*Plus: Release 19.0.0.0.0 - Production on Sun Apr 17 17:16:02 2022
Version 19.3.0.0.0

Copyright (c) 1982, 2019, Oracle.  All rights reserved.

ERROR:
ORA-01033: ORACLE initialization or shutdown in progress
Process ID: 0 
 从库还没开始回复,肯定报错



 

 
 




*.db_unique_name='oradbpr'    ##代表主库的唯一名,主备库都要有各自的唯一名,可自定义
*.fal_client='oradbpr'    ##FAL参数定义的数据库名同样取自本地tnsnames.ora里配置的Oracle Net Service Name,clinent代表本地Oracle Net Service Name
*.fal_server='oradbdg'    ##FAL参数定义的数据库名同样取自本地tnsnames.ora里配置的Oracle Net Service Name,server是目标端Oracle Net Service Name
*.enable_pluggable_database=true
*.local_listener='LISTENER_ORADB'
*.log_archive_config='DG_CONFIG=(oradbpr,oradbdg)'    ##列出主备库上的DB_UNIQUE_NAME 参数,默认情况下,定义该参数能确保主备库数据库能够互相识别对方
*.log_archive_dest_1='location=/oracle/u01/app/oracle/oradbdg_archivelog'    ##本地归档路径,主库与备库都需要定义各自的online redo log的归档地址,以系统实际的存放路径为准
*.log_archive_dest_2='SERVICE=oradbdg LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=oradbdg'    ##该参数仅当数据库角色为主库时生效,指定primary归档redo log到该参数定义的standby database上,其中SERVICE=zzwdg里面SERVICE为上面的fal_server,DB_UNIQUE_NAME=zzwdg为备库的DB_UNIQUE_NAME
*.log_file_name_convert='/oracle/u01/app/oracle/oradata/oradbdg','/oracle/u01/app/oracle/oradata/ORADB'    ##主数据库和备用数据库的日志文件转换目录对映(目标数据库数据文件目录,本地数据库数据文件目录)
*.nls_language='SIMPLIFIED CHINESE'

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值