问题描述:主备两个库不在同一个机房,此时想从这一套库中在复制一套可读可写的新库出来。网络带宽要求比较高,需要从备库中使用备份在起一个新库,也要测试下使用duplicate从备库能够在复制一个新库。经过测试,使用备份和duplicate都可以从备库中恢复新库。

  下面使用duplicate恢复新主库,通过搭建级联DG的方式,主库传输归档到备库1,备库1在传输归档到备库2。后面也可以进行拆分,通过备库1恢复的备库2,调整主库归档路径变成主库把归档直接分发给备库2,实现一主两从的改造。

1.环境介绍

利用实时备库级联DG搭建,利用duplicate在线进行新库恢复

IP

oracle版本

oracle_sid

db_unique_name

角色

192.168.163.25

19.13

orcl

orcl

主库

192.168.163.45

19.13

orclstd

orclstd

备库

192.168.163.47

19.13

orclstd2

orclstd2

新主库

2. 备库1配置

--查看备库状态

SQL>  select open_mode,protection_mode,database_role,switchover_status from v$database;

OPEN_MODE         PROTECTION_MODE      DATABASE_ROLE    SWITCHOVER_STATUS
-------------------- -------------------- ---------------- --------------------
READ ONLY WITH APPLY MAXIMUM PERFORMANCE PHYSICAL STANDBY NOT ALLOWED SQL>
SQL> select process, status, thread#,sequence#, block#, blocks from v$managed_standby; PROCESS STATUS THREAD# SEQUENCE# BLOCK# BLOCKS
--------- ------------ ---------- ---------- ---------- ----------
ARCH CLOSING 1 54 1 1120
DGRD ALLOCATED 0 0 0 0
DGRD ALLOCATED 0 0 0 0
ARCH CLOSING 1 55 1 2
ARCH CLOSING 1 40 1 2
ARCH CLOSING 1 48 1 2
RFS WRITING 1 56 12477 1
RFS IDLE 1 0 0 0
LNS WRITING 1 56 12476 1
MRP0 APPLYING_LOG 1 56 12476 245760
DGRD ALLOCATED 0 0 0 0 11 rows selected.

2.1修改参数

--修改orclstd参数,这里使用dest_2或者dest_3都可以
alter system set log_archive_config='dg_config=(orcl,orclstd,orclstd2)'; 
alter system set log_archive_dest_3='service=orclstd2 async valid_for=(standby_logfile,standby_role) db_unique_name=orclstd2';
--查看orclstd参数配置
SQL> set linesize 500 pages 0
col value for a90
col name for a50
select name,value from v$parameter where name in ('db_name','db_unique_name','log_archive_config','log_archive_dest_1','log_archive_dest_2','log_archive_dest_state_1','log_archive_dest_state_2','remote_login_passwordfile','log_archive_format','log_archiveSQL> _max_processes','fal_server','db_file_name_convert','log_file_name_convert','standby_file_management');SQL> SQL>
db_file_name_convert /oradata/ORCL/, /oradata/orclstd/
log_file_name_convert /oradata/ORCL/, /oradata/orclstd/
log_archive_dest_1 location=/home/oracle/flashdata/ORCLSTD/archivelog VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_U
NIQUE_NAME=orclstd log_archive_dest_2 SERVICE=orclstd LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=orclstd
log_archive_dest_state_1 enable
log_archive_dest_state_2 enable
fal_server orcl
log_archive_config dg_config=(orcl,orclstd,orclstd2)
log_archive_format %t_%s_%r.dbf
log_archive_max_processes 4
standby_file_management AUTO
remote_login_passwordfile EXCLUSIVE
db_name orcl
db_unique_name ORCLSTD 14 rows selected.

2.2创建pfile

create pfile='/tmp/initorclstd2.ora' from spfile;

2.3配置tnsname

[oracle@19c-dg:dbs]>$cat ../network/admin/tnsnames.ora
orcl =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.163.25)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = orcl)
)
) orclstd =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.163.45)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = orclstd)
)
)
orclstd2 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.163.47)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = orclstd2)
)
)

2.4传输文件

传输pfile,密码文件到备库2

3. 备库2配置

3.1 pfile修改

[oracle@19c-duplicate admin]$ cat ../../dbs/initorclstd2.ora
orclstd2.__data_transfer_cache_size=0
orclstd2.__db_cache_size=343932928
orclstd2.__inmemory_ext_roarea=0
orclstd2.__inmemory_ext_rwarea=0
orclstd2.__java_pool_size=79691776
orclstd2.__large_pool_size=4194304
orclstd2.__oracle_base='/u01/app/oracle'#ORACLE_BASE set from environment
orclstd2.__pga_aggregate_target=192937984
orclstd2.__sga_target=771751936
orclstd2.__shared_io_pool_size=37748736
orclstd2.__shared_pool_size=289406976
orclstd2.__streams_pool_size=0
orclstd2.__unified_pga_pool_size=0
*._optimizer_cartesian_enabled=FALSE
*.audit_file_dest='/u01/app/oracle/admin/orclstd2/adump'
*.audit_trail='NONE'
*.compatible='19.0.0'
*.control_files='/oradata/orclstd2/control01.ctl','/oradata/orclstd2/control02.ctl'
*.db_block_size=8192
*.db_create_file_dest='/oradata'
*.db_name='orcl'
*.db_recovery_file_dest_size=16106127360
*.db_recovery_file_dest='/home/oracle/flashdata'
*.db_unique_name='ORCLSTD2'
*.deferred_segment_creation=FALSE
*.diagnostic_dest='/u01/app/oracle'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=orclXDB)'
*.event='10949 trace name context forever:28401 trace name context forever,level 1:10849 trace name context forever, level 1:19823 trace name context forever, level 90'
*.fal_client='orclstd2'
*.fal_server='orclstd'
*.log_archive_config='dg_config=(orcl,orclstd,orclstd2)'
*.log_archive_dest_1='location=/home/oracle/flashdata/ORCLSTD/archivelog VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=orclstd2'
*.log_archive_dest_2='SERVICE=orclstd LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=orclstd'
*.log_archive_format='%t_%s_%r.dbf'
*.nls_language='AMERICAN'
*.nls_territory='AMERICA'
*.open_cursors=300
*.pga_aggregate_target=184m
*.processes=300
*.remote_login_passwordfile='EXCLUSIVE'
*.result_cache_max_size=0
*.sga_target=735m
*.standby_file_management='AUTO'
*.undo_tablespace='UNDOTBS1'

3.2 监听配置

[oracle@19c-duplicate admin]$ cat listener.ora
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.163.47)(PORT = 1521))
)
)
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = orclstd2)
(ORACLE_HOME = /u01/app/oracle/product/19.0.0.0/dbhome_1)
(SID_NAME = orclstd2)
)
) ADR_BASE_LISTENER = /u01/app/oracle --打开监听
lsnrctl start

3.3 tnsname配置

[oracle@19c-duplicate admin]$ cat tnsnames.ora
orcl =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.163.25)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = orcl)
)
) orclstd =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.163.45)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = orclstd)
)
)
orclstd2 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.163.47)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = orclstd2)
)
)

tnsname验证

备库1和备库2互相验证

[oracle@19c-dg:dbs]>$tnsping orclstd

TNS Ping Utility for Linux: Version 19.0.0.0.0 - Production on 16-NOV-2022 20:48:05

Copyright (c) 1997, 2021, Oracle.  All rights reserved.

Used parameter files:

Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.163.45)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = orclstd)))
OK (30 msec)
[oracle@19c-dg:dbs]>$tnsping orclstd2 TNS Ping Utility for Linux: Version 19.0.0.0.0 - Production on 16-NOV-2022 20:48:06 Copyright (c) 1997, 2021, Oracle. All rights reserved. Used parameter files: Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.163.47)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = orclstd2)))
OK (0 msec)

3.4 创建目录

mkdir -p相关目录
/home/oracle/flashdata/ORCLSTD/archivelog
/oradata/orclstd2
/u01/app/oracle/admin/orclstd2/adump
/home/oracle/flashdata

3.5rman在线创建二级备库

[oracle@19c-duplicate archivelog]$ rman target sys/oracle@orclstd auxiliary sys/oracle@orclstd2

Recovery Manager: Release 19.0.0.0.0 - Production on Wed Nov 16 18:59:06 2022
Version 19.13.0.0.0 Copyright (c) 1982, 2019, Oracle and/or its affiliates. All rights reserved. connected to target database: ORCL (DBID=1646277430)
connected to auxiliary database: ORCL (not mounted) RMAN> RMAN> duplicate target database for standby from active database dorecover nofilenamecheck; Starting Duplicate Db at 2022-11-16 18:59:17
using target database control file instead of recovery catalog
allocated channel: ORA_AUX_DISK_1
channel ORA_AUX_DISK_1: SID=20 device type=DISK
current log archived at primary database
current log archived at primary database contents of Memory Script:
{
backup as copy reuse
passwordfile auxiliary format '/u01/app/oracle/product/19.0.0.0/dbhome_1/dbs/orapworclstd2' ;
}
executing Memory Script Starting backup at 2022-11-16 19:03:47
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=43 device type=DISK
Finished backup at 2022-11-16 19:03:48
duplicating Online logs to Oracle Managed File (OMF) location
duplicating Datafiles to Oracle Managed File (OMF) location contents of Memory Script:
{
restore clone from service 'orclstd' standby controlfile;
}
executing Memory Script Starting restore at 2022-11-16 19:03:48
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 orclstd
channel ORA_AUX_DISK_1: restoring control file
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:02
output file name=/oradata/orclstd2/control01.ctl
output file name=/oradata/orclstd2/control02.ctl
Finished restore at 2022-11-16 19:03:52 contents of Memory Script:
{
sql clone 'alter database mount standby database';
}
executing Memory Script sql statement: alter database mount standby database contents of Memory Script:
{
set newname for clone tempfile 1 to new;
switch clone tempfile all;
set newname for clone datafile 1 to new;
set newname for clone datafile 3 to new;
set newname for clone datafile 4 to new;
set newname for clone datafile 7 to new;
restore
from nonsparse from service
'orclstd' clone database
;
}
executing Memory Script executing command: SET NEWNAME renamed tempfile 1 to /oradata/ORCLSTD2/datafile/o1_mf_temp_%u_.tmp in control file executing command: SET NEWNAME executing command: SET NEWNAME executing command: SET NEWNAME executing command: SET NEWNAME Starting restore at 2022-11-16 19:03:56
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 orclstd
channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_AUX_DISK_1: restoring datafile 00001 to /oradata/ORCLSTD2/datafile/o1_mf_system_%u_.dbf
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:01:16
channel ORA_AUX_DISK_1: starting datafile backup set restore
channel ORA_AUX_DISK_1: using network backup set from service orclstd
channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_AUX_DISK_1: restoring datafile 00003 to /oradata/ORCLSTD2/datafile/o1_mf_sysaux_%u_.dbf
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:01:16
channel ORA_AUX_DISK_1: starting datafile backup set restore
channel ORA_AUX_DISK_1: using network backup set from service orclstd
channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_AUX_DISK_1: restoring datafile 00004 to /oradata/ORCLSTD2/datafile/o1_mf_undotbs1_%u_.dbf
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:15
channel ORA_AUX_DISK_1: starting datafile backup set restore
channel ORA_AUX_DISK_1: using network backup set from service orclstd
channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_AUX_DISK_1: restoring datafile 00007 to /oradata/ORCLSTD2/datafile/o1_mf_users_%u_.dbf
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:03
Finished restore at 2022-11-16 19:06:46 contents of Memory Script:
{
switch clone datafile all;
}
executing Memory Script datafile 1 switched to datafile copy
input datafile copy RECID=9 STAMP=1120936006 file name=/oradata/ORCLSTD2/datafile/o1_mf_system_kq9jwx0b_.dbf
datafile 3 switched to datafile copy
input datafile copy RECID=10 STAMP=1120936006 file name=/oradata/ORCLSTD2/datafile/o1_mf_sysaux_kq9jz8rk_.dbf
datafile 4 switched to datafile copy
input datafile copy RECID=11 STAMP=1120936006 file name=/oradata/ORCLSTD2/datafile/o1_mf_undotbs1_kq9k1omp_.dbf
datafile 7 switched to datafile copy
input datafile copy RECID=12 STAMP=1120936006 file name=/oradata/ORCLSTD2/datafile/o1_mf_users_kq9k23xg_.dbf contents of Memory Script:
{
set until scn 3192644;
recover
standby
clone database
noredo
delete archivelog
;
}
executing Memory Script executing command: SET until clause Starting recover at 2022-11-16 19:06:46
using channel ORA_AUX_DISK_1 Finished recover at 2022-11-16 19:06:46 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=43 device type=DISK
specification does not match any archived log in the repository
Finished Duplicate Db at 2022-11-16 19:07:34

3.6打开数据库验证

此时数据库状态,从主库把归档发送到备库1,备库1把归档在传回备库2上,备库不开启实时应用,只传输归档,不应用归档

orclstd2:
SQL> alter database open;
SQL> select status,instance_name from v$instance; STATUS INSTANCE_NAME
------------ ----------------
OPEN orclstd2 SQL> select open_mode,protection_mode,database_role,switchover_status from v$database; OPEN_MODE PROTECTION_MODE DATABASE_ROLE SWITCHOVER_STATUS
-------------------- -------------------- ---------------- --------------------
READ ONLY MAXIMUM PERFORMANCE PHYSICAL STANDBY NOT ALLOWED orclstd:
SQL> select open_mode,protection_mode,database_role,switchover_status from v$database; OPEN_MODE PROTECTION_MODE DATABASE_ROLE SWITCHOVER_STATUS
-------------------- -------------------- ---------------- --------------------
READ ONLY WITH APPLY MAXIMUM PERFORMANCE PHYSICAL STANDBY NOT ALLOWED orcl:
SQL> select open_mode,protection_mode,database_role,switchover_status from v$database; OPEN_MODE PROTECTION_MODE DATABASE_ROLE SWITCHOVER_STATUS
-------------------- -------------------- ---------------- --------------------
READ WRITE MAXIMUM PERFORMANCE PRIMARY TO STANDBY

orcl切换归档

SQL> archive log list;
Database log mode Archive Mode
Automatic archival Enabled
Archive destination /archivelog
Oldest online log sequence 54
Next log sequence to archive 56
Current log sequence 56
SQL>
SQL> alter system switch logfile; System altered. SQL> / System altered. SQL> / System altered. SQL>
SQL> archive log list;
Database log mode Archive Mode
Automatic archival Enabled
Archive destination /archivelog
Oldest online log sequence 57
Next log sequence to archive 59
Current log sequence 59
SQL>

orclstd2:

SQL> select process, status, thread#,sequence#, block#, blocks from v$managed_standby;

PROCESS   STATUS      THREAD#  SEQUENCE#     BLOCK#     BLOCKS
--------- ------------ ---------- ---------- ---------- ----------
ARCH CONNECTED 0 0 0 0
DGRD ALLOCATED 0 0 0 0
DGRD ALLOCATED 0 0 0 0
ARCH CLOSING 1 58 1 4
ARCH CLOSING 1 56 12288 1382
ARCH CLOSING 1 57 1 2
RFS IDLE 1 0 0 0
RFS IDLE 1 59 106 1
RFS IDLE 0 0 0 0 9 rows selected. [oracle@19c-duplicate admin]$ cd /home/oracle/flashdata/ORCLSTD/archivelog/
[oracle@19c-duplicate archivelog]$ ll
total 10984
-rw-r-----. 1 oracle oinstall 3655680 Nov 16 19:09 1_53_1118496696.dbf
-rw-r-----. 1 oracle oinstall 573952 Nov 16 19:18 1_54_1118496696.dbf
-rw-r-----. 1 oracle oinstall 1536 Nov 16 19:18 1_55_1118496696.dbf
-rw-r-----. 1 oracle oinstall 6999040 Nov 16 20:55 1_56_1118496696.dbf
-rw-r-----. 1 oracle oinstall 1536 Nov 16 20:55 1_57_1118496696.dbf
-rw-r-----. 1 oracle oinstall 2560 Nov 16 20:55 1_58_1118496696.dbf

3.7 开启实时同步

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

此时主库相当于两个备库

4.测试主库到备库2

关闭备库1,主库的归档就传不到备库2了。如果在主库直接添加远程传输路径到备库2,备库2是不是还是可以正常接收归档以及应用呢

orcl:

alter system set log_archive_config='dg_config=(orcl,orclstd,orclstd2)';

alter system set log_archive_dest_3='SERVICE=orclstd2 LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=orclstd2';

alter system set log_archive_dest_state_3=enable;

添加tnsname

orcl =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.163.25)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = orcl)
)
) orclstd =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.163.45)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = orclstd)
)
)
orclstd2 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.163.47)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = orclstd2)
)
)

orclstd2添加tns

关闭备库1,查看主库到备库2的同步情况,可以正常同步以及应用

19.13备库duplicate恢复新主库(二)的更多相关文章

  1. oracle data guard备库备份恢复

    客户有套data guard环境,主库在阿里云上,备库在本地机房,现在想定期做备份,但是因为一些原因,备份阿里云上的主库实现会有些问题,所以只能备份本地的备库.目前需求就是测试备库的备份文件是否可以进 ...

  2. Oracle-DG最大保护模式下,dg备库出现问题对主库有什么影响?

    一.需求 疑问?Oracle最大保护模式下,dg备库出现问题,影响主库吗? 我们都知道Oracle最大保护模式的意思是oracle不允许数据丢失,1条记录都不行! 那么备库有问题? oracle主库还 ...

  3. dataGuard主备库角色切换

    切换顺序: 先主库后备库 --查看主库可切换状态: SQL> select switchover_status from v$database; SWITCHOVER_STATUS ------ ...

  4. 一主多从+Binlog Server,主库故障无法访问,如何在从库中选举一个新主库

    一.基本环境 VMware10.0+CentOS6.9+MySQL5.7.19 ROLE HOSTNAME BASEDIR DATADIR IP PORT M ZST1 /usr/local/mysq ...

  5. KingbaseES R6 集群物理copy方式手工添加新备库节点

    案例说明: 对于主库数据量比较大的环境,在添加新节点是可以采用在线clone方式创建新的备库节点,也可以在离线的状态下,直接拷贝其中一个备库的所有集群相关目录来创建新的备库节点.本案例介绍了通过离线物 ...

  6. DG之主库、备库切换(物理备库)

    DG之主库.备库切换 一.开库与关库顺序 开库顺序 先启备库,再启主库(启动监听.打开告警日志) 关库顺序 先关主库,再关备库 二.主备库切换 1.操作过程一览 步骤1:启动备库.监听.告警: 步骤2 ...

  7. DG备库无法接受主库归档日志之密码文件

    DG备库无法接受主库归档日志之密码文件 实验目的:还原某个客户案例,客户审计需要,对主库sys用户进行锁定,一小时后对sys用户进行解锁后,发现备库无法接受主库的归档日志 本篇文章,测试sys用户与D ...

  8. 使用DUPLICATE 方式创建ORACLE 11G DG备库环境

    我的最佳实践 ① 手动创建好初始化参数文件: *.audit_file_dest='E:\APP\XJXU\ADMIN\ORASTAND\ADUMP'*.control_files='E:\APP\X ...

  9. oracle dg 备库不同步主库数据

    今天遇到一个数据库同步问题,主库被关闭,重启主库后,备库不能正常同步主库数据.只有当手动切换归档日志的时候,备库才能和主库一致. 这个问题的解决方法: 重启备库,重新应用归档日志. 操作步骤如下: / ...

  10. DG备库,实时应用如何判断,MR进程,及MRP应用归档,三种情况的查询及验证

    本篇文档学习,DG备库,实时应用如何判断,MR进程,及MRP应用归档,三种情况的查询及验证 1.取消MRP进程 备库查询进程状态select process,client_process,sequen ...

随机推荐

  1. ByteArrayInputStream和ByteArrayOutputStream不需要关闭流的原理--博客摘录

    ---------------- 版权声明:本文为CSDN博主「PSUUGDUFNM」的原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接及本声明.原文链接:https://blo ...

  2. ps2022(Photoshop 2022)Mac/win最新图像处理中文版

    Adobe Photoshop 2022 Mac/win是数字图像处理和编辑的行业标准,提供了全面的专业修饰工具包,并具有旨在激发灵感的强大编辑功能.Photoshop 带有大量图像处理工具,旨在帮助 ...

  3. 社团管理系统(AMS)个人总结

    一.展示 所在小组:13组 源代码链接:https://github.com/xupppp/ams 博文链接: https://www.cnblogs.com/xupppp/p/11795218.ht ...

  4. 树形DP【初级版】

    START: 2021-08-14 10:00:37 在树形DP中,我们可以用数据模拟出一张图,一般是一棵树或是森林,所有的节点一般最多只有一个父节点.并且树里面没有重边或者环, 因此,一颗有N个节点 ...

  5. OSIDP-I/O管理和磁盘调度-11

    I/O设备 I/O设备分类:人可读.机器可读和远程通信三类. I/O设备之间的差别: 1.数据传送速率 2.应用领域 3.控制的复杂性 4.传送单位 5.数据表示形式 6.错误条件 I/O功能的组织 ...

  6. 【Unity】阅读LuaFramework_UGUI的一种方法

    写在前面 我第一次接触到LuaFramework_UGUI是在一个工作项目中,当时也是第一次知道toLua.但我刚开始了解LuaFramework_UGUI时十分混乱,甚至将LuaFramework_ ...

  7. 关于QT编译程序找不到MSVCRT.DLL和其他动态链接库的解决办法

    先上图(一大堆无法解析的外部符号): 解决办法分两个步骤: 1.系统环境变量设置,把这些dll文件所在目录加入到PATH中.比如C:\Windows\SysWOW64, C:\Windows\Syst ...

  8. ORACLE数据库通过DBLINK连接另一个数据库

    ORACLE数据库通过DBLINK连接另一个数据库 亲测有效:create database link XXX --dblink名connect to 远程数据库用户名 identified by & ...

  9. U-Boot 常用命令介绍

    U-Boot简介 U-Boot常用命令 帮助类 - help/?:该命令输出u-boot支持的所有命令及命令的功能 - help/? cmd:可以查看相应cmd的详细介绍及使用方法 查询类 - bdi ...

  10. 手把手带你玩转Linux

    今天这篇文章带你走进Linux世界的同时,带你手把手玩转Linux,加深对Linux系统的认识. 一.搞好Linux工作必须得不断折腾,说白了,只是动手力量必须强.我在初学Linux的那片,家中三台计 ...