oracle DG搭建
Oracle DG 搭建
1、 环境
OS IP hostname db_name DB_UNIQUE_NAME
主库 RHEL 5.4 192.168.12.20 edgzrip1.oracle.com PROD1 PROD1
备库 RHEL 5.4 192.168.12.30 edgzrip2.oracle.com PROD1 DG
2、 设置主库开启归档
SQL> alter database archivelog;
Database altered.
3、 设置主库开启强制记录日志
SQL> alter database force logging;
Database altered.
4、 查询主库归档模式及日志强制记录
SQL> select log_mode,force_logging from v$database;
LOG_MODE FOR
------------ ---
ARCHIVELOG YES
5、 添加standby log
SQL> alter database add standby logfile group 4 '/u01/app/oracle/oradata/PROD1/standby04.log' size 50m;
Database altered.
SQL> alter database add standby logfile group 5 '/u01/app/oracle/oradata/PROD1/standby05.log' size 50m;
Database altered.
SQL> alter database add standby logfile group 6 '/u01/app/oracle/oradata/PROD1/standby06.log' size 50m;
Database altered.
SQL> alter database add standby logfile group 7 '/u01/app/oracle/oradata/PROD1/standby07.log' size 50m;
Database altered.
6、 主库创建pfile
SQL> create pfile from spfile;
File created.
7、 传送pfile到备库
[root@edgzrip1 dbs]# scp initPROD1.ora edgzrip2:/u01/app/oracle/product/11.2.0/db_1/dbs/initDG.ora
root@edgzrip2's password:
initPROD1.ora
8、 修改pfile
在pfile追加以下参数
DB_UNIQUE_NAME=PROD1
LOG_ARCHIVE_CONFIG='DG_CONFIG=(PROD1,DG)'
LOG_ARCHIVE_DEST_1='LOCATION=USE_DB_RECOVERY_FILE_DEST VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=PROD1'
LOG_ARCHIVE_DEST_2= 'SERVICE=DG ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=DG'
LOG_ARCHIVE_DEST_STATE_1=ENABLE
LOG_ARCHIVE_DEST_STATE_2=ENABLE
FAL_SERVER=DG
DB_FILE_NAME_CONVERT='/u01/app/oracle/oradata/DG','/u01/app/oracle/oradata/PROD1'
LOG_FILE_NAME_CONVERT='/u01/app/oracle/oradata/DG','/u01/app/oracle/oradata/PROD1'
STANDBY_FILE_MANAGEMENT=AUTO
9、 使用新的pfile启动主库,并创建新的spfile
Startup pfile=’/u01/app/oracle/product/11.2.0/db_1/dbs/initPROD1.ora’
Create spfile from pfile;
10、 传送密码文件orapwPROD1到备库
[root@edgzrip1 dbs]# scp orapwPROD1 edgzrip2:/u01/app/oracle/product/11.2.0/db_1/dbs/ orapwDG
11、 修改备库参数文件initDG.ora
追加以下参数:
DB_UNIQUE_NAME=DG
LOG_ARCHIVE_CONFIG='DG_CONFIG=(DG,PROD1)'
LOG_ARCHIVE_DEST_1='LOCATION=USE_DB_RECOVERY_FILE_DEST VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=DG'
LOG_ARCHIVE_DEST_2= 'SERVICE=PROD1 ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=PROD1'
LOG_ARCHIVE_DEST_STATE_1=ENABLE
LOG_ARCHIVE_DEST_STATE_2=ENABLE
FAL_SERVER=PROD1
DB_FILE_NAME_CONVERT='/u01/app/oracle/oradata/PROD1','/u01/app/oracle/oradata/DG'
LOG_FILE_NAME_CONVERT='/u01/app/oracle/oradata/PROD1','/u01/app/oracle/oradata/DG'
STANDBY_FILE_MANAGEMENT=AUTO
12、 在备库创建相应目录
Mkdir –p /u01/app/oracle/oradata/DG
Mkdir –p /u01/app/oracle/fast_recovery_area/DG
Mkdir –p /u01/app/oracle/admin/DG/{a,dp}dump
13、 使用备库pfile创建spfile,并启动到nomount状态
[oracle@edgzrip2-DG ~]$ sqlplus / as sysdba
Create spfile from pfile;
Startup nomount
14、 配置主库备库网络
主库listener.ora:
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = PROD1.us.oracle.com)
(ORACLE_HOME = /u01/app/oracle/product/11.2.0/dbhome_1)
(SID_NAME = PROD1)
)
)
LISTENER =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = edgzrip1.oracle.com)(PORT = 1521))
)
ADR_BASE_LISTENER = /u01/app/oracle
主库tnsnames.ora:
PROD1 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = edgzrip1.oracle.com)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = PROD1.us.oracle.com)
)
)
DG =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = edgzrip2.oracle.com)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = DG.us.oracle.com)
)
)
备库listener.ora:
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = DG.us.oracle.com)
(ORACLE_HOME = /u01/app/oracle/product/11.2.0/db_1)
(SID_NAME = DG)
)
)
备库tnsnames.ora:
PROD1 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = edgzrip1.oracle.com)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = PROD1.us.oracle.com)
)
)
DG =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = edgzrip2.oracle.com)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = DG.us.oracle.com)
)
)
测试主备库网络:
启动主备库监听:lsnrctl start
主库:
[oracle@edgzrip1-PROD1 admin]$ tnsping prod1
TNS Ping Utility for Linux: Version 11.2.0.3.0 - Production on 26-AUG-2019 19:52:18
Copyright (c) 1997, 2011, Oracle. All rights reserved.
Used parameter files:
Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = edgzrip1.oracle.com)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = PROD1.us.oracle.com)))
OK (10 msec)
[oracle@edgzrip1-PROD1 admin]$ tnsping dg
TNS Ping Utility for Linux: Version 11.2.0.3.0 - Production on 26-AUG-2019 19:52:25
Copyright (c) 1997, 2011, Oracle. All rights reserved.
Used parameter files:
Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = edgzrip2.oracle.com)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = DG.us.oracle.com)))
OK (0 msec)
备库:
[oracle@edgzrip2-DG admin]$ tnsping prod1
TNS Ping Utility for Linux: Version 11.2.0.3.0 - Production on 26-AUG-2019 19:55:22
Copyright (c) 1997, 2011, Oracle. All rights reserved.
Used parameter files:
Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = edgzrip1.oracle.com)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = PROD1.us.oracle.com)))
OK (10 msec)
[oracle@edgzrip2-DG admin]$ tnsping dg
TNS Ping Utility for Linux: Version 11.2.0.3.0 - Production on 26-AUG-2019 19:55:26
Copyright (c) 1997, 2011, Oracle. All rights reserved.
Used parameter files:
Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = edgzrip2.oracle.com)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = DG.us.oracle.com)))
OK (10 msec)
确认主备库网络无问题
15、 备库登录rman
[oracle@edgzrip2-DG admin]$ rman target sys/oracle@prod1 auxiliary sys/oracle@dg
Recovery Manager: Release 11.2.0.3.0 - Production on Mon Aug 26 19:56:30 2019
Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.
connected to target database: PROD1 (DBID=2202819890)
connected to auxiliary database: PROD1 (not mounted)
RMAN>
16、 执行duplicate
RMAN> duplicate target database for standby from active database nofilenamecheck dorecover;
Starting Duplicate Db at 21-SEP-19
using target database control file instead of recovery catalog
allocated channel: ORA_AUX_DISK_1
channel ORA_AUX_DISK_1: SID=19 device type=DISK
contents of Memory Script:
{
backup as copy reuse
targetfile '/u01/app/oracle/product/11.2.0/dbhome_1/dbs/orapwPROD1' auxiliary format
'/u01/app/oracle/product/11.2.0/db_1/dbs/orapwDG' ;
}
executing Memory Script
Starting backup at 21-SEP-19
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=41 device type=DISK
Finished backup at 21-SEP-19
contents of Memory Script:
{
backup as copy current controlfile for standby auxiliary format '/u01/app/oracle/oradata/DG/control01.ctl';
restore clone controlfile to '/u01/app/oracle/fast_recovery_area/DG/control02.ctl' from
'/u01/app/oracle/oradata/DG/control01.ctl';
}
executing Memory Script
Starting backup at 21-SEP-19
using channel ORA_DISK_1
channel ORA_DISK_1: starting datafile copy
copying standby control file
output file name=/u01/app/oracle/product/11.2.0/dbhome_1/dbs/snapcf_PROD1.f tag=TAG20190921T171431 RECID=2 STAMP=1019582073
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:03
Finished backup at 21-SEP-19
Starting restore at 21-SEP-19
using channel ORA_AUX_DISK_1
channel ORA_AUX_DISK_1: copied control file copy
Finished restore at 21-SEP-19
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 tempfile 1 to
"/u01/app/oracle/oradata/DG/temp01.dbf";
switch clone tempfile all;
set newname for datafile 1 to
"/u01/app/oracle/oradata/DG/system01.dbf";
set newname for datafile 2 to
"/u01/app/oracle/oradata/DG/sysaux01.dbf";
set newname for datafile 3 to
"/u01/app/oracle/oradata/DG/undotbs01.dbf";
set newname for datafile 4 to
"/u01/app/oracle/oradata/DG/users01.dbf";
set newname for datafile 5 to
"/u01/app/oracle/oradata/DG/example01.dbf";
backup as copy reuse
datafile 1 auxiliary format
"/u01/app/oracle/oradata/DG/system01.dbf" datafile
2 auxiliary format
"/u01/app/oracle/oradata/DG/sysaux01.dbf" datafile
3 auxiliary format
"/u01/app/oracle/oradata/DG/undotbs01.dbf" datafile
4 auxiliary format
"/u01/app/oracle/oradata/DG/users01.dbf" datafile
5 auxiliary format
"/u01/app/oracle/oradata/DG/example01.dbf" ;
sql 'alter system archive log current';
}
executing Memory Script
executing command: SET NEWNAME
renamed tempfile 1 to /u01/app/oracle/oradata/DG/temp01.dbf in control file
executing command: SET NEWNAME
executing command: SET NEWNAME
executing command: SET NEWNAME
executing command: SET NEWNAME
executing command: SET NEWNAME
Starting backup at 21-SEP-19
using channel ORA_DISK_1
channel ORA_DISK_1: starting datafile copy
input datafile file number=00001 name=/u01/app/oracle/oradata/PROD1/system01.dbf
output file name=/u01/app/oracle/oradata/DG/system01.dbf tag=TAG20190921T171443
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:01:23
channel ORA_DISK_1: starting datafile copy
input datafile file number=00002 name=/u01/app/oracle/oradata/PROD1/sysaux01.dbf
output file name=/u01/app/oracle/oradata/DG/sysaux01.dbf tag=TAG20190921T171443
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:01:11
channel ORA_DISK_1: starting datafile copy
input datafile file number=00005 name=/u01/app/oracle/oradata/PROD1/example01.dbf
output file name=/u01/app/oracle/oradata/DG/example01.dbf tag=TAG20190921T171443
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:38
channel ORA_DISK_1: starting datafile copy
input datafile file number=00003 name=/u01/app/oracle/oradata/PROD1/undotbs01.dbf
output file name=/u01/app/oracle/oradata/DG/undotbs01.dbf tag=TAG20190921T171443
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:15
channel ORA_DISK_1: starting datafile copy
input datafile file number=00004 name=/u01/app/oracle/oradata/PROD1/users01.dbf
output file name=/u01/app/oracle/oradata/DG/users01.dbf tag=TAG20190921T171443
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:03
Finished backup at 21-SEP-19
sql statement: alter system archive log current
contents of Memory Script:
{
backup as copy reuse
archivelog like "/u01/app/oracle/fast_recovery_area/PROD1/archivelog/2019_09_21/o1_mf_1_9_grctj6gy_.arc" auxiliary format
"/u01/app/oracle/fast_recovery_area/DG/archivelog/2019_09_21/o1_mf_1_9_%u_.arc" archivelog like
"/u01/app/oracle/fast_recovery_area/PROD1/archivelog/2019_09_21/o1_mf_1_10_grctprql_.arc" auxiliary format
"/u01/app/oracle/fast_recovery_area/DG/archivelog/2019_09_21/o1_mf_1_10_%u_.arc" ;
catalog clone recovery area;
switch clone datafile all;
}
executing Memory Script
Starting backup at 21-SEP-19
using channel ORA_DISK_1
channel ORA_DISK_1: starting archived log copy
input archived log thread=1 sequence=9 RECID=4 STAMP=1019582086
output file name=/u01/app/oracle/fast_recovery_area/DG/archivelog/2019_09_21/o1_mf_1_9_07ucb5qs_.arc RECID=0 STAMP=0
channel ORA_DISK_1: archived log copy complete, elapsed time: 00:00:01
channel ORA_DISK_1: starting archived log copy
input archived log thread=1 sequence=10 RECID=5 STAMP=1019582296
output file name=/u01/app/oracle/fast_recovery_area/DG/archivelog/2019_09_21/o1_mf_1_10_08ucb5qt_.arc RECID=0 STAMP=0
channel ORA_DISK_1: archived log copy complete, elapsed time: 00:00:02
Finished backup at 21-SEP-19
searching for all files in the recovery area
List of Files Unknown to the Database
=====================================
File Name: /u01/app/oracle/fast_recovery_area/DG/archivelog/2019_09_21/o1_mf_1_9_07ucb5qs_.arc
File Name: /u01/app/oracle/fast_recovery_area/DG/archivelog/2019_09_21/o1_mf_1_10_08ucb5qt_.arc
cataloging files...
cataloging done
List of Cataloged Files
=======================
File Name: /u01/app/oracle/fast_recovery_area/DG/archivelog/2019_09_21/o1_mf_1_9_07ucb5qs_.arc
File Name: /u01/app/oracle/fast_recovery_area/DG/archivelog/2019_09_21/o1_mf_1_10_08ucb5qt_.arc
List of files in Recovery Area not managed by the database
==========================================================
File Name: /u01/app/oracle/fast_recovery_area/DG/control02.ctl
RMAN-07526: Reason: File is not an Oracle Managed File
number of files not managed by recovery area is 1, totaling 9.28MB
datafile 1 switched to datafile copy
input datafile copy RECID=2 STAMP=1019582304 file name=/u01/app/oracle/oradata/DG/system01.dbf
datafile 2 switched to datafile copy
input datafile copy RECID=3 STAMP=1019582304 file name=/u01/app/oracle/oradata/DG/sysaux01.dbf
datafile 3 switched to datafile copy
input datafile copy RECID=4 STAMP=1019582304 file name=/u01/app/oracle/oradata/DG/undotbs01.dbf
datafile 4 switched to datafile copy
input datafile copy RECID=5 STAMP=1019582304 file name=/u01/app/oracle/oradata/DG/users01.dbf
datafile 5 switched to datafile copy
input datafile copy RECID=6 STAMP=1019582304 file name=/u01/app/oracle/oradata/DG/example01.dbf
contents of Memory Script:
{
set until scn 879213;
recover
standby
clone database
delete archivelog
;
}
executing Memory Script
executing command: SET until clause
Starting recover at 21-SEP-19
using channel ORA_AUX_DISK_1
starting media recovery
archived log for thread 1 with sequence 9 is already on disk as file /u01/app/oracle/fast_recovery_area/DG/archivelog/2019_09_21/o1_mf_1_9_07ucb5qs_.arc
archived log for thread 1 with sequence 10 is already on disk as file /u01/app/oracle/fast_recovery_area/DG/archivelog/2019_09_21/o1_mf_1_10_08ucb5qt_.arc
archived log file name=/u01/app/oracle/fast_recovery_area/DG/archivelog/2019_09_21/o1_mf_1_9_07ucb5qs_.arc thread=1 sequence=9
archived log file name=/u01/app/oracle/fast_recovery_area/DG/archivelog/2019_09_21/o1_mf_1_10_08ucb5qt_.arc thread=1 sequence=10
media recovery complete, elapsed time: 00:00:03
Finished recover at 21-SEP-19
Finished Duplicate Db at 21-SEP-19
RMAN>
17、 Duplicate完成后,在备库启用实时ADG
SQL> select database_role,open_mode from v$database;
DATABASE_ROLE OPEN_MODE
---------------- --------------------
PHYSICAL STANDBY READ ONLY
SQL> recover managed standby database using current logfile disconnect from session;
Media recovery complete.
SQL> select database_role,open_mode from v$database;
DATABASE_ROLE OPEN_MODE
---------------- --------------------
PHYSICAL STANDBY READ ONLY WITH APPLY
SQL> select switchover_status,database_role,open_mode from v$database;
SWITCHOVER_STATUS DATABASE_ROLE OPEN_MODE
-------------------- ---------------- --------------------
NOT ALLOWED PHYSICAL STANDBY READ ONLY WITH APPLY
此时数据库状态时READ ONLY WITH APPLY,即只读且实时应用日志,通常所说的ADG,Active Data Guard。
READ ONLY WITH APPLY表示备库处于READ ONLY状态的同时可以接收主库传过来的日志文件并进行恢复,以便备库可以即时查看到主库的变化。
oracle DG搭建的更多相关文章
- 某控股公司OA系统ORACLE DG搭建
*此处安装ORACLE DATAGUARD是利用ORACLE RMAN DUPLICATE方式安装.*可以搭建好ORACLE DG再来impdp生产数据,也可以先导入主库数据再来做DG*注意看下面的配 ...
- 【Oracle】搭建DG(DataGuard)
操作系统:OEL 5.6 Oracle 版本:11.2.0.4.0 DataGuard规划说明 DATABASE_ROLE DB_NAME IPADDR Primary lgr 192.168.10. ...
- oracle DG 主备切换语句整理
今日花了一下午时间进行了Oracle DataGuard的切换练习,参考了网上好多文章,最后将一些语句进行摘录,以备以后查询使用.之后有时间会带来Oracle DG的搭建和切换全过程文章. DataG ...
- DG搭建方式区分
DG搭建三种方式: 一.异机恢复,restore database,recover database 二. duplicate target database for standby from act ...
- linux下oracle11G DG搭建(二):环绕主库搭建操作
linux下oracle11G DG搭建(二):环绕主库搭建操作 环境 名称 主库 备库 主机名 bjsrv shsrv 软件版本号 RedHat Enterprise5.5.Oracle 11g 1 ...
- linux下oracle11G DG搭建(三):环绕备库搭建操作
linux下oracle11G DG搭建(三):环绕备库搭建操作 环境 名称 主库 备库 主机名 bjsrv shsrv 软件版本号 RedHat Enterprise5.5.Oracle 11g 1 ...
- dg搭建后oracle_redo不存在
目的:在oracle 10.2.0.4 环境中,搭建oracle dg遇到 备库redo不存在的问题,另一位同事搭建oracle 11.2.0.4 dg在备库也遇到同样的问题,如下描述处理过程. 参考 ...
- windows,oracle,dg报错:ORA-12528,ORA-12154,ORA-10456 ,PING[ARC1]: Heartbeat failed to connect to standby 'orclbk'. Error is 12154
windows,oracle,dg报错:ORA-12528,ORA-12154,ORA-10456 最近有需求在windows的2台oracle服务器上搭建dg,在过程中遇到了一些错误,跟在linux ...
- 4级搭建类401-Oracle 19c Non-CDB DG搭建(Linux 主备一对一 LGWR ASYNC)公开
项目文档引子系列是根据项目原型,制作的测试实验文档,目的是为了提升项目过程中的实际动手能力,打造精品文档AskScuti. 项目文档引子系列除特定项目目前不对外发布,仅作为博客记录,其他公开.如学员在 ...
随机推荐
- 划分问题(Java 动态规划)
Description 给定一个正整数的集合A={a1,a2,-.,an},是否可以将其分割成两个子集合,使两个子集合的数加起来的和相等.例A = { 1, 3, 8, 4, 10} 可以分割:{1, ...
- go-zero 如何扛住流量冲击(二)
本篇文章承接上一篇go-zero 如何扛住流量冲击(一). 上一篇介绍的是 go-zero 中滑动窗口限流,本篇介绍另外一个 tokenlimit ,令牌桶限流. 使用 const ( burst = ...
- 吉他软件Guitar Pro入门
Guitar Pro是一款优秀的吉他学习软件,初学者可以依靠其学习理论知识,也可以通过和弦添加.曲谱导出等功能来提升弹奏能力.今天,小编就给大家简略地介绍下吉他软件Guitar Pro. 乐谱编辑功能 ...
- 到底为什么不要用SELECT *
SELECT * 无论工作还是面试,说到sql优化,比说的一个问题就是,代码中sql不要出现 SELECT *,之前一直也没有深入去研究研究,为什么,只是记住了,代码中注意了,但是就在今天逛某某论坛时 ...
- 【VUE】2.渲染组件&重定向路由
1.删除多余组件,使环境赶紧 1. 整理App.vue, 删除多余内容,在template 模板区域增加一个路由占位符 router-view:渲染路径匹配到的视图组件 <template> ...
- Gin + 七牛云对象存储
配置七牛云存储 创建存储空间 拿到密钥 安装七牛云对象存储SDK 推荐go.mod安装 // 将下面地址复制到go.mod,然后执行go mod download github.com/qiniu/a ...
- H3CNE认证(题库)
H3CNE考试的题库,均为发烧友收集的,拥有将近认证考试的百分之八十五的题,但答案不具备官方性,但是题库具有解析. https://huxiaoyao.lanzous.com/b01tr2skd 密码 ...
- 【mq读书笔记】顺序消息
注意异常情况导致整个消费无限重试 阻塞消费 mq支持局部消息顺序消费,可以确保同一个消息消费队列中的消息被顺序消费.看下针对顺序消息在整个消费过程中做的调整: 队列负载: DefaultMQPushC ...
- Oracle11gR2 sqlplus中可以执行上键查询backspace删除
1.1 sqlplus中可以执行上键查询backspace删除 1.1.1 上键查询 方法1: 安装源-导入key-安装rpm包-进入配置文件修改参数 rpm -ivh http://download ...
- JZOJ8月10日提高组反思
JZOJ8月10日提高组反思 T1 没想到怎么打 就去打暴力了 本来想拿个30不错了 结果\(AC\)了 话说回来,数据也挺小的 T2 不AC便爆0 就一个数据点 给不给打暴力的人活了 正解是状压DP ...