热门标签 | HotTags
当前位置:  开发笔记 > 数据库 > 正文

Oracle基础教程之通过RMAN复制数据库

ORACLE在数据库拷贝和数据库克隆之间惟一不同的是拷贝的数据库不能更改名称。使用RMAN的复制数据库特性,可以从RMAN备份创建一个

ORACLE在数据库拷贝和数据库克隆之间惟一不同的是拷贝的数据库不能更改名称。使用RMAN的复制数据库特性,可以从RMAN备份创建一个

通过使用数据库备份,DBA可以在同一服务器或其它服务器上建立副本数据库。这个副本数据库可以和主数据库有相同的名称(拷贝)或与主数据库名称不同(克隆)。

Oracle在数据库拷贝和数据库克隆之间惟一不同的是拷贝的数据库不能更改名称。使用RMAN的复制数据库特性,可以从RMAN备份创建一个新的数据库,并为这个副本数据库保留已有的数据库名称或者赋予新的名称。

RMAN术语和命令:

A. 辅助数据库(Auxiliary database):RMAN将目标数据库复制到该数据库实例。要创建该数据库的参数文件、路径和口令文件。必须在RMAN数据库复制之前以非加载(NOMOUNT)模式启动辅助数据库实例。

B. 复制(Duplicate):从其它数据库的RMAN备份创建一个新的数据库。要在RMAN执行复制的位置配置数据库并启动Oracle的实例。从RMAN的角度来看,目标数据库被复制到副本数据库。

C. 设置新名称(Set newname):在一个RMAN运行块内为数据文件设置新的名称,提供给该参数的文件名称覆盖任何该数据文件的辅助数据库名(用SET AUXNAME)或者辅助数据库参数(DB_FILE_NAME_CONVERT)。这个新名称的值只在运行块内有效。

D. 设置辅助名称(Set auxname):为数据文件设置辅助名称,这个辅助名称将在RMAN会话之间存在。如果不希望以后的RMAN命令中使用这个设置的名称,则必须将该名称设置为NULL。

E. 日志文件(log file):可以在Duplicate命令中作用这个关键词,以指定副本数据库创建的联机重做日志文件。如果没有特别指定这个关键词,则RMAN将在辅助参数文件中的LOG_FILE_NAME_CONVERT参数决定的路径中生成日志文件。如果没有这个RMAN关键词,而且也没有设置辅助参数,则RMAN将在目标数据库同样的位置创建日志

(假设已指定了NOCHECKFILENAME选项)。

F. 不检查文件名(Nocheckfilename):默认情况下,RMAN将检查在副本主机上被恢复到主目标数据文件路径下的数据文件,以确保不会被错误地覆盖。使用该选项可以覆盖这个默认的操作。这样就需要手工确保RMAN没有覆盖任何已存在的数据文件。应当谨慎使用这个命令,以防止覆盖数据文件。

在Duplicate命令执行的过程中,RMAN执行了一系列工作。当连接到目标、辅助和或选的目录数据库后,RMAN将进行以下操作:

1) 根据最近发生的或者是提供的恢复停止点来决定复制操作将使用哪个基本的备份。

2) 根据辅助数据库参数或RMAN设置的命令和选项来决定将数据文件保存在辅助数据库实例的什么位置。

3) 为辅助数据库读出备份片或映像拷贝并恢复数据文件。这个RMAN的功能与执行正常的数据库还原是一样的。

4) 根据恢复停止点将任何增量备份应用于还原数据文件。这个增量方式的应用与用RMAN发布恢复数据库命令的任务是一样的。

5) 根据恢复停止点从磁盘或备份将所有归档日志文件应用于还原数据文件。

6) 为辅助数据库创建新的控制文件。

7) 当重新设置联机重做日志文件时,打开副本数据库。新的联机重做日志文件将根据RMAN复制数据库命令中指定的或者根据转换的辅助参数文件进行创建。

创建副本数据库的步骤:

1) 准备副本数据库参数文件:拷贝目标数据库的参数文件到$ORACLE_BASE/admin/clone/pfile位置。修改参数文件,替换所有目标数据库名为副本数据库名,同时增

加两个参数:db_file_name_cOnvert= (“primary”,”clone”)、log_file_name_cOnvert= (“primary”,”clone”),再在$ORACLE_HOME/dbs目录下增加

参数文件的LINUX符号连接,,或者%ORACLE_HOME%\database目录下增加windows参数文件。

2) 创建口令文件:

LINUX>orapwd file=$ORACLE_HOME/dbs/orapwCLONE password=clone entries=4

WINNT>orapwd file=%ORACLE_HOME%\database\PWDCLONE.ORA password=clone

3) 创建windows服务(linux不需要):

WINNT>oradim –new –sid clone –intpwd clone

4) 建立NET8连接

5) 启动辅助实例:在RMAN创建副本数据库以前,辅助实例需要以非加载模式启动

6) 加载或打开目标数据库

7) 创建副本数据库

C:\Documents and Settings\Administrator>rman

Recovery Manager: 版本 9.2.0.1.0 - Production

Copyright (c) 1995, 2002, Oracle Corporation.All rights reserved.

RMAN> connect target sys/oracle@mydb ;

已联机到目标数据库: MYDB (DBID=2567199153)

RMAN> connect catalog rman/rman@standby

已联机至复原目录数据库

RMAN> connect auxiliary sys/clone;

联机至辅助数据库: clone (未挂载)

RMAN> run{

2> SET UNTIL logseq 3 THREAD 1;

3> ALLOCATE auxiliary channel d1 TYPE DISK;

4> duplicate target DATABASE TO "CLONE";

5> }

执行命令: SET until clause

已配置信道: d1

通道 d1: sid=14 devtype=DISK

开始 Duplicate Db, 于 07-5月 -08

打印储存的命令档: Memory Script

{

set until scn1077491;

set newname for datafile1 to"C:\ORACLE\ORADATA\CLONE\SYSTEM01.DBF";

set newname for datafile2 to"C:\ORACLE\ORADATA\CLONE\UNDOTBS01.DBF";

set newname for datafile3 to"C:\ORACLE\ORADATA\CLONE\CWMLITE01.DBF";

set newname for datafile4 to"C:\ORACLE\ORADATA\CLONE\DRSYS01.DBF";

set newname for datafile5 to"C:\ORACLE\ORADATA\CLONE\EXAMPLE01.DBF";

set newname for datafile6 to"C:\ORACLE\ORADATA\CLONE\INDX1.DBF";

set newname for datafile7 to"C:\ORACLE\ORADATA\CLONE\ODM01.DBF";

set newname for datafile8 to"C:\ORACLE\ORADATA\CLONE\TOOLS01.DBF";

set newname for datafile9 to"C:\ORACLE\ORADATA\CLONE\USERS01.DBF";

set newname for datafile10 to"C:\ORACLE\ORADATA\CLONE\XDB01.DBF";

set newname for datafile11 to"C:\ORACLE\ORADATA\CLONE\MYTS01.DBF";

restore

check readonly

clone database

;

}

执行命令档: Memory Script

执行命令: SET until clause

执行命令: SET NEWNAME

执行命令: SET NEWNAME

执行命令: SET NEWNAME

执行命令: SET NEWNAME

执行命令: SET NEWNAME

执行命令: SET NEWNAME

执行命令: SET NEWNAME

执行命令: SET NEWNAME

执行命令: SET NEWNAME

执行命令: SET NEWNAME

执行命令: SET NEWNAME

开始 restore, 于 07-5月 -08

通道 d1: 启动数据文件备份集的还原

通道 d1: 正在设定要从备份集还原的数据文件

正在将资料文件 00001 还原为 C:\ORACLE\ORADATA\CLONE\SYSTEM01.DBF

正在将资料文件 00002 还原为 C:\ORACLE\ORADATA\CLONE\UNDOTBS01.DBF

正在将资料文件 00003 还原为 C:\ORACLE\ORADATA\CLONE\CWMLITE01.DBF

正在将资料文件 00004 还原为 C:\ORACLE\ORADATA\CLONE\DRSYS01.DBF

正在将资料文件 00005 还原为 C:\ORACLE\ORADATA\CLONE\EXAMPLE01.DBF

正在将资料文件 00006 还原为 C:\ORACLE\ORADATA\CLONE\INDX1.DBF

正在将资料文件 00007 还原为 C:\ORACLE\ORADATA\CLONE\ODM01.DBF

正在将资料文件 00008 还原为 C:\ORACLE\ORADATA\CLONE\TOOLS01.DBF

正在将资料文件 00009 还原为 C:\ORACLE\ORADATA\CLONE\USERS01.DBF

正在将资料文件 00010 还原为 C:\ORACLE\ORADATA\CLONE\XDB01.DBF

正在将资料文件 00011 还原为 C:\ORACLE\ORADATA\CLONE\MYTS01.DBF

通道 d1: 还原备份片 1

处理片=D:\ORACLEBAK\DBMYDB_10_1_653973100 标志=WHOLE_INC0 参数=NULL

通道 d1: 还原完成

完成 restore, 于 07-5月 -08

sql 叙述句: CREATE CONTROLFILE REUSE SET DATABASE "CLONE" RESETLOGS ARCHIVELOG

MAXLOGFILES 50

MAXLOGMEMBERS 5

MAXDATAFILES 100

MAXINSTANCES 1

MAXLOGHISTORY 226

LOGFILE

GROUP1 ( 'C:\ORACLE\ORADATA\CLONE\REDO01.LOG' ) SIZE104857600REUSE,

GROUP2 ( 'C:\ORACLE\ORADATA\CLONE\REDO02.LOG' ) SIZE104857600REUSE,

GROUP3 ( 'C:\ORACLE\ORADATA\CLONE\REDO03.LOG' ) SIZE104857600REUSE

DATAFILE

'C:\ORACLE\ORADATA\CLONE\SYSTEM01.DBF'

CHARACTER SET AL32UTF8

打印储存的命令档: Memory Script

{

switch clone datafile all;

}

执行命令档: Memory Script

数据文件 2 已切换至数据文件复制本

输入数据文件复本 recid=1 戳记=654059846 文件名称=C:\ORACLE\ORADATA\CLONE\UNDOTBS01.DBF

数据文件 3 已切换至数据文件复制本

输入数据文件复本 recid=2 戳记=654059846 文件名称=C:\ORACLE\ORADATA\CLONE\CWMLITE01.DBF

数据文件 4 已切换至数据文件复制本

输入数据文件复本 recid=3 戳记=654059847 文件名称=C:\ORACLE\ORADATA\CLONE\DRSYS01.DBF

数据文件 5 已切换至数据文件复制本

输入数据文件复本 recid=4 戳记=654059847 文件名称=C:\ORACLE\ORADATA\CLONE\EXAMPLE01.DBF

数据文件 6 已切换至数据文件复制本

输入数据文件复本 recid=5 戳记=654059847 文件名称=C:\ORACLE\ORADATA\CLONE\INDX1.DBF

数据文件 7 已切换至数据文件复制本

输入数据文件复本 recid=6 戳记=654059847 文件名称=C:\ORACLE\ORADATA\CLONE\ODM01.DBF

数据文件 8 已切换至数据文件复制本

输入数据文件复本 recid=7 戳记=654059847 文件名称=C:\ORACLE\ORADATA\CLONE\TOOLS01.DBF

数据文件 9 已切换至数据文件复制本

输入数据文件复本 recid=8 戳记=654059847 文件名称=C:\ORACLE\ORADATA\CLONE\USERS01.DBF

数据文件 10 已切换至数据文件复制本

输入数据文件复本 recid=9 戳记=654059847 文件名称=C:\ORACLE\ORADATA\CLONE\XDB01.DBF

数据文件 11 已切换至数据文件复制本

输入数据文件复本 recid=10 戳记=654059847 文件名称=C:\ORACLE\ORADATA\CLONE\MYTS01.DBF

打印储存的命令档: Memory Script

{

set until scn1077491;

recover

clone database

delete archivelog

;

}

执行命令档: Memory Script

执行命令: SET until clause

开始 recover, 于 07-5月 -08

启动媒体恢复

通道 d1: 启动存盘日志还原到预设目的

通道 d1: 还原存盘日志

存盘日志系线=1 顺序=1

通道 d1: 还原存盘日志

存盘日志系线=1 顺序=2

通道 d1: 还原备份片 1

处理片=D:\ORACLEBAK\ARCHMYDB_11_1_654043289 标志=TAG20080506T224129 参数=NULL

通道 d1: 还原完成

存盘日志文件名称=C:\ORACLE\ORADATA\CLONE\ARCHIVE1_1.DBF 系线=1 顺序=1

通道 clone_default: 删除存盘日志

存盘日志文件名称=C:\ORACLE\ORADATA\CLONE\ARCHIVE1_1.DBF recid=2 戳记=654059855

存盘日志文件名称=C:\ORACLE\ORADATA\CLONE\ARCHIVE1_2.DBF 系线=1 顺序=2

通道 clone_default: 删除存盘日志

存盘日志文件名称=C:\ORACLE\ORADATA\CLONE\ARCHIVE1_2.DBF recid=1 戳记=654059854

媒体恢复完成

完成 recover, 于 07-5月 -08

打印储存的命令档: Memory Script

{

shutdown clone;

startup clone nomount ;

}

执行命令档: Memory Script

已卸下数据库

已关闭 Oracle 执行处理

联机至辅助数据库 (未启动)

已启动 Oracle 执行处理

系统整体区域总共是 122755896 个字节

Fixed Size 453432 个字节

Variable Size 96468992 个字节

Database Buffers 25165824 个字节

Redo Buffers 667648 个字节

sql 叙述句: CREATE CONTROLFILE REUSE SET DATABASE \CLONE\ RESETLOGS ARCHIVELOG

MAXLOGFILES 50

MAXLOGMEMBERS 5

MAXDATAFILES 100

MAXINSTANCES 1

MAXLOGHISTORY 226

LOGFILE

GROUP1 ( 'C:\ORACLE\ORADATA\CLONE\REDO01.LOG' ) SIZE104857600REUSE,

GROUP2 ( 'C:\ORACLE\ORADATA\CLONE\REDO02.LOG' ) SIZE104857600REUSE,

GROUP3 ( 'C:\ORACLE\ORADATA\CLONE\REDO03.LOG' ) SIZE104857600REUSE

DATAFILE

'C:\ORACLE\ORADATA\CLONE\SYSTEM01.DBF'

CHARACTER SET AL32UTF8

打印储存的命令档: Memory Script

{

catalog clone datafilecopy"C:\ORACLE\ORADATA\CLONE\UNDOTBS01.DBF";

catalog clone datafilecopy"C:\ORACLE\ORADATA\CLONE\CWMLITE01.DBF";

catalog clone datafilecopy"C:\ORACLE\ORADATA\CLONE\DRSYS01.DBF";

catalog clone datafilecopy"C:\ORACLE\ORADATA\CLONE\EXAMPLE01.DBF";

catalog clone datafilecopy"C:\ORACLE\ORADATA\CLONE\INDX1.DBF";

catalog clone datafilecopy"C:\ORACLE\ORADATA\CLONE\ODM01.DBF";

catalog clone datafilecopy"C:\ORACLE\ORADATA\CLONE\TOOLS01.DBF";

catalog clone datafilecopy"C:\ORACLE\ORADATA\CLONE\USERS01.DBF";

catalog clone datafilecopy"C:\ORACLE\ORADATA\CLONE\XDB01.DBF";

catalog clone datafilecopy"C:\ORACLE\ORADATA\CLONE\MYTS01.DBF";

switch clone datafile all;

}

执行命令档: Memory Script

数据文件备份已加入目录

数据文件备份文件名称=C:\ORACLE\ORADATA\CLONE\UNDOTBS01.DBF recid=1 戳记=654059903

数据文件备份已加入目录

数据文件备份文件名称=C:\ORACLE\ORADATA\CLONE\CWMLITE01.DBF recid=2 戳记=654059903

数据文件备份已加入目录

数据文件备份文件名称=C:\ORACLE\ORADATA\CLONE\DRSYS01.DBF recid=3 戳记=654059903

数据文件备份已加入目录

数据文件备份文件名称=C:\ORACLE\ORADATA\CLONE\EXAMPLE01.DBF recid=4 戳记=654059904

数据文件备份已加入目录

数据文件备份文件名称=C:\ORACLE\ORADATA\CLONE\INDX1.DBF recid=5 戳记=654059904

数据文件备份已加入目录

数据文件备份文件名称=C:\ORACLE\ORADATA\CLONE\ODM01.DBF recid=6 戳记=654059904

数据文件备份已加入目录

数据文件备份文件名称=C:\ORACLE\ORADATA\CLONE\TOOLS01.DBF recid=7 戳记=654059904

数据文件备份已加入目录

数据文件备份文件名称=C:\ORACLE\ORADATA\CLONE\USERS01.DBF recid=8 戳记=654059905

数据文件备份已加入目录

数据文件备份文件名称=C:\ORACLE\ORADATA\CLONE\XDB01.DBF recid=9 戳记=654059905

数据文件备份已加入目录

数据文件备份文件名称=C:\ORACLE\ORADATA\CLONE\MYTS01.DBF recid=10 戳记=654059905

数据文件 2 已切换至数据文件复制本

输入数据文件复本 recid=1 戳记=654059903 文件名称=C:\ORACLE\ORADATA\CLONE\UNDOTBS01.DBF

数据文件 3 已切换至数据文件复制本

输入数据文件复本 recid=2 戳记=654059903 文件名称=C:\ORACLE\ORADATA\CLONE\CWMLITE01.DBF

数据文件 4 已切换至数据文件复制本

输入数据文件复本 recid=3 戳记=654059903 文件名称=C:\ORACLE\ORADATA\CLONE\DRSYS01.DBF

数据文件 5 已切换至数据文件复制本

输入数据文件复本 recid=4 戳记=654059904 文件名称=C:\ORACLE\ORADATA\CLONE\EXAMPLE01.DBF

数据文件 6 已切换至数据文件复制本

输入数据文件复本 recid=5 戳记=654059904 文件名称=C:\ORACLE\ORADATA\CLONE\INDX1.DBF

数据文件 7 已切换至数据文件复制本

输入数据文件复本 recid=6 戳记=654059904 文件名称=C:\ORACLE\ORADATA\CLONE\ODM01.DBF

数据文件 8 已切换至数据文件复制本

输入数据文件复本 recid=7 戳记=654059904 文件名称=C:\ORACLE\ORADATA\CLONE\TOOLS01.DBF

数据文件 9 已切换至数据文件复制本

输入数据文件复本 recid=8 戳记=654059905 文件名称=C:\ORACLE\ORADATA\CLONE\USERS01.DBF

数据文件 10 已切换至数据文件复制本

输入数据文件复本 recid=9 戳记=654059905 文件名称=C:\ORACLE\ORADATA\CLONE\XDB01.DBF

数据文件 11 已切换至数据文件复制本

输入数据文件复本 recid=10 戳记=654059905 文件名称=C:\ORACLE\ORADATA\CLONE\MYTS01.DBF

打印储存的命令档: Memory Script

{

Alter clone database open resetlogs;

}

执行命令档: Memory Script

已开启数据库

完成 Duplicate Db, 于 07-5月 -08

RMAN>

使用RMAN的关键词和命令来控制数据文件和日志文件的名称和位置

可以如下控制数据文件的位置并设置新名称或设置辅助名称

SET auxname FOR DATAFILE 2 TO 'c:\oracle\oradata\clone\auxname02.dbf';

#为数据文件设置辅助名称,这个辅助名称将在RMAN会话之间存在,如果不希望以后的RMAN使用这个设置的名称,则必须将该名称设置为NULL。

SET auxname FOR DATAFILE 2 TO 'c:\oracle\oradata\clone\auxname02.dbf';

#为数据文件设置辅助名称,这个辅助名称将在RMAN会话之间存在,如果不希望以后的RMAN使用这个设置的名称,则必须将该名称设置为NULL。

SET auxname FOR DATAFILE 4 TO 'c:\oracle\oradata\clone\auxname03.dbf';

SET auxname FOR DATAFILE 6 TO 'c:\oracle\oradata\clone\auxname04.dbf';

run{

ALLOCATE auxiliary channel d1 TYPE DISK;

SET UNTIL logseq 3 THREAD 1;

SET newname FOR DATAFILE 1 TO 'c:\oracle\oradata\clone\newname01.dbf'; #在RMAN运行块内为数据文件设置新的名称,这个新名称的值只在运行块内有效

SET newname FOR DATAFILE 3 TO 'c:\oracle\oradata\clone\newname03.dbf';

SET newname FOR DATAFILE 5 TO 'c:\oracle\oradata\clone\newname05.dbf';

SET newname FOR DATAFILE 7 TO 'c:\oracle\oradata\clone\newname07.dbf';

duplicate target DATABASE TO \CLONE\ LOGFILE

GROUP 1 ('c:\oracle\oradata\clone\redo1_1.log',

'c:\oracle\oradata\clone\redo1_2.log') SIZE 10M REUSE,

GROUP 2 ('c:\oracle\oradata\clone\redo2_1.log',

'c:\oracle\oradata\clone\redo2_2.log') SIZE 10M REUSE,

GROUP 3 ('c:\oracle\oradata\clone\redo3_1.log',

'c:\oracle\oradata\clone\redo3_2.log') SIZE 10M REUSE;

}

SET auxname FOR DATAFILE 2 TO NULL;

SET auxname FOR DATAFILE 4 TO NULL;

SET auxname FOR DATAFILE 6 TO NULL;

在复制期间为clone数据库的每个数据文件指定一个新的文件名(或位置)。这样,当将目标数据库备份还原到复制数据库位置时,每个数据文件以被重新命名,日志文

件可以指定为附加到DUPLICATE TARGER DATABASE命令,在以上的示例中,每个数据文件都被重命名,并且日志文件也被重新定义大小、重命名和镜像,对单数的数据文

件重命名而对偶数的数据文件辅助命名。

linux

推荐阅读
  • 本文介绍了如何通过在数据库表中增加一个字段来记录文章的访问次数,并提供了一个示例方法用于更新该字段值。 ... [详细]
  • 本文深入探讨了 PHP 实现计划任务的方法,包括其原理、具体实现方式以及在不同操作系统中的应用。通过详细示例和代码片段,帮助开发者理解和掌握如何高效地设置和管理定时任务。 ... [详细]
  • 本文介绍如何配置SecureCRT以正确显示Linux终端的颜色,并解决中文显示问题。通过简单的步骤设置,可以显著提升使用体验。 ... [详细]
  • 本文介绍了一个基于 Java SpringMVC 和 SSM 框架的综合系统,涵盖了操作日志记录、文件管理、头像编辑、权限控制、以及多种技术集成如 Shiro、Redis 等,旨在提供一个高效且功能丰富的开发平台。 ... [详细]
  • 本文深入探讨了MySQL中常见的面试问题,包括事务隔离级别、存储引擎选择、索引结构及优化等关键知识点。通过详细解析,帮助读者在面对BAT等大厂面试时更加从容。 ... [详细]
  • 本文详细介绍了如何解决 Microsoft SQL Server 中用户 'sa' 登录失败的问题。错误代码为 18470,提示该帐户已被禁用。我们将通过 Windows 身份验证方式登录,并启用 'sa' 帐户以恢复其访问权限。 ... [详细]
  • 本文档介绍了如何在Visual Studio 2010环境下,利用C#语言连接SQL Server 2008数据库,并实现基本的数据操作,如增删改查等功能。通过构建一个面向对象的数据库工具类,简化了数据库操作流程。 ... [详细]
  • 本文详细介绍了Linux系统中的进程管理函数,涵盖了获取进程ID、用户ID、创建子进程、信号处理等关键操作。通过这些函数,开发者可以更好地控制和管理进程行为。 ... [详细]
  • 本文详细介绍了如何在Linux系统中创建和管理DB2数据库,包括用户切换、数据库创建、错误处理、连接与断开、表空间和缓冲池的创建,以及用户权限管理和数据导入导出等操作。 ... [详细]
  • 本文详细介绍了 Linux 系统中用户、组和文件权限的设置方法,包括基本权限(读、写、执行)、特殊权限(SUID、SGID、Sticky Bit)以及相关配置文件的使用。 ... [详细]
  • Shell脚本中变量操作详解
    本文基于《鸟哥的Linux私房菜》一书,详细介绍了Shell脚本中变量的使用方法,包括变量的赋值规则、字符串处理技巧以及环境变量的管理等,旨在帮助读者更好地理解和使用Shell中的变量。 ... [详细]
  • 本文深入探讨了 Delphi 中类对象成员的核心概念,包括 System 单元的基础知识、TObject 类的定义及其方法、TClass 的作用以及对象的消息处理机制。文章不仅解释了这些概念的基本原理,还提供了丰富的补充和专业解答,帮助读者全面理解 Delphi 的面向对象编程。 ... [详细]
  • 如何在SQL Server 2008中通过Profiler跟踪特定数据库及获取客户端信息
    本文介绍如何利用SQL Server Profiler工具来监控特定数据库的操作,并获取执行这些操作的客户端计算机名和账户名。步骤包括创建新的跟踪、配置跟踪属性以及设置列筛选器以精确过滤数据。 ... [详细]
  • cJinja:C++编写的轻量级HTML模板引擎
    本文介绍了cJinja,这是一个用C++编写的轻量级HTML模板解析库。它利用ejson来处理模板中的数据替换(即上下文),其语法与Django Jinja非常相似,功能强大且易于学习。 ... [详细]
  • 如何从python读取sql[mysql基础教程]
    从python读取sql的方法:1、利用python内置的open函数读入sql文件;2、利用第三方库pymysql中的connect函数连接mysql服务器;3、利用第三方库pa ... [详细]
author-avatar
手机用户2602889575
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有