仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 896|回复: 8
打印 上一主题 下一主题

[学习教程] MSSQL网页编程之在两呆板间克隆数据库的两种办法

[复制链接]
变相怪杰 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:37:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
这类操作的执行过程是,1)按照新的表定义建立一个临时表tmpa,2)将原表数据拷贝到临时表,3)将原始表改名tmpb,4)将tmpa改名为原表名,5)将tmpb删除。数据|数据库
关于克隆数据库的办法,比来一向在研讨,偶然在cnoug上闲逛,发明了两篇帖子不错,现作为今后事情中的参考:

办法一:
怎样利用RMAN在两呆板间克隆数据库

原文摘自:www.cnoug.org

关头字:方针、目次、克隆、日记、

方针数据库和克隆数据库分离在两台呆板,其情况都一样:

WINDOWS2000SERVERSP4、IE6.1,ORACLE9205

在本文中,利用的是方针数据库上的RMAN,目次数据库在第3台呆板上,

操纵步骤:

1、毗连方针数据库,对方针数据库做全库备份

D:ORACLEBIN>rman

恢复办理器:版本9.2.0.5.0-Production

Copyright(c)1995,2002,OracleCorporation.Allrightsreserved.

RMAN>connectcatalogrman/rman@187

毗连到恢复目次数据库

RMAN>connecttarget/

毗连到方针数据库:ENCORE(DBID=3146513770)
RMAN>run
2>{allocatechanneld1typediskmaxpiecesize=500m;
3>backupfulldatabase
4>formatE:manbakdb_%d_%s_%p_%t;
5>releasechanneld1;
6>}

分派的通道:d1
通道d1:sid=16devtype=DISK

启动backup于2004-06-2821:03:31
通道d1:正在启动full数据文件备份集
通道d1:正在指定备份会合的数据文件
在备份会合包括以后的SPFILE
备份会合包含以后把持文件
输出数据文件fno=00001name=D:ORACLEORADATAENCOREYSTEM01.DBF
输出数据文件fno=00002name=D:ORACLEORADATAENCOREUNDOTBS01.DBF
输出数据文件fno=00005name=D:ORACLEORADATAENCOREEXAMPLE01.DBF
输出数据文件fno=00008name=D:ORACLEORADATAENCORETOOLS01.DBF
输出数据文件fno=00010name=D:ORACLEORADATAENCOREXDB01.DBF
输出数据文件fno=00006name=D:ORACLEORADATAENCOREINDX01.DBF
输出数据文件fno=00009name=D:ORACLEORADATAENCOREUSERS01.DBF
输出数据文件fno=00003name=D:ORACLEORADATAENCORECWMLITE01.DBF
输出数据文件fno=00004name=D:ORACLEORADATAENCOREDRSYS01.DBF
输出数据文件fno=00007name=D:ORACLEORADATAENCOREODM01.DBF
通道d1:正在启动段1于2004-06-2821:03:37
通道d1:已完成段1于2004-06-2821:05:02
段handle=E:RMANBAKDB_ENCORE_1_1_530053412comment=NONE
通道d1:正在启动段2于2004-06-2821:05:02
通道d1:已完成段2于2004-06-2821:06:07
段handle=E:RMANBAKDB_ENCORE_1_2_530053412comment=NONE
通道d1:备份集已完成,经由工夫:00:02:35
完成backup于2004-06-2821:06:07

开释的通道:d1

RMAN>

2、备份方针数据库的参数文件

SQL>createpfilefromspfile;

文件已创立

SQL>

3、--将方针数据库的参数文件(第2步创立)拷贝到克隆呆板上,修正响应的参数(次要是实例名和
数据库名,和bdump、udump、cdump等背景历程的跟踪文件寄存的路径,本文中,克隆数据库
的实例名为CLONE,数据库名为CLONE_DB),然后在克隆呆板上创立实例

D:oraclein>oradim-new-sidclone-PFILED:ORACLEdatabaseINITCLONE.ORA-INTPWDSYS1

D:oraclein>


4、--修正克隆数据库的监听器,增添对克隆数据库的监听(第3段)

SID_LIST_LISTENER=
(SID_LIST=
(SID_DESC=
(SID_NAME=PLSExtProc)
(ORACLE_HOME=D:ORACLE)
(PROGRAM=extproc)
)
(SID_DESC=
(GLOBAL_DBNAME=ORACLE)
(ORACLE_HOME=D:ORACLE)
(SID_NAME=ORACLE92)
)
(SID_DESC=
(GLOBAL_DBNAME=clone_db)
(ORACLE_HOME=D:ORACLE)
(SID_NAME=clone)
)
)

5、修正RMAN呆板上的TNSNAMES.ORA文件,增添此毗连串,包管RMAN利用此毗连串可以毗连到
克隆数据库的实例

CLONE=
(DESCRIPTION=
(ADDRESS_LIST=
(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.0.194)(PORT=1521))
)
(CONNECT_DATA=
(SERVICE_NAME=CLONE_DB)
)
)

5、将方针数据库的备份集拷贝到克隆数据库呆板的统一地位,并启动克隆数据库(nomount形态)

6、因为第1步骤中没有备份日记,在利用

RMAN>run
2>{allocateauxiliarychanneld1typedisk;
3>setnewnamefordatafile1toF:CLONEdataYSTEM01.DBF;

剧本克隆数据库时,呈现NOBACKUPCOPY之类的毛病,
以后增补备份方针数据库的日记,

RMAN>run
2>{allocatechanneld1typediskmaxpiecesize=500m;
3>backuparchivelogall
4>formatE:manbaklog_%d_%s_%p_%t;
5>releasechanneld1;
6>}

分派的通道:d1
通道d1:sid=11devtype=DISK

启动backup于2004-06-2821:42:18
以后日记已存档
通道d1:正在启动存档日记备份集
通道d1:正在指定备份会合的存档日记
输出存档日记线程=1序列=107纪录ID=107工夫戳=528371132
输出存档日记线程=1序列=108纪录ID=108工夫戳=530053839
输出存档日记线程=1序列=109纪录ID=109工夫戳=530054855
输出存档日记线程=1序列=110纪录ID=110工夫戳=530055437
输出存档日记线程=1序列=111纪录ID=111工夫戳=530055540
输出存档日记线程=1序列=112纪录ID=112工夫戳=530055739
通道d1:正在启动段1于2004-06-2821:42:23
通道d1:已完成段1于2004-06-2821:42:26
段handle=E:RMANBAKLOG_ENCORE_2_1_530055742comment=NONE
通道d1:备份集已完成,经由工夫:00:00:04
完成backup于2004-06-2821:42:26

开释的通道:d1


7、将日记备份集拷贝到克隆呆板的统一目次后,回到RMAN处,毗连帮助(克隆)数据库,
实行剧本,剩下的RMAN本人会做


RMAN>connectauxiliarysys/sys1@clone

已毗连到备用数据库:CLONE_DB(未安装)

RMAN>run
2>{allocateauxiliarychanneld1typedisk;
3>setnewnamefordatafile1toF:CLONEdataYSTEM01.DBF;
4>setnewnamefordatafile2toF:CLONEdataUNDOTBS01.DBF;
5>setnewnamefordatafile3toF:CLONEdataCWMLITE01.DBF;
6>setnewnamefordatafile4toF:CLONEdataDRSYS01.DBF;
7>setnewnamefordatafile5toF:CLONEdataEXAMPLE01.DBF;
8>setnewnamefordatafile6toF:CLONEdataINDX01.DBF;
9>setnewnamefordatafile7toF:CLONEdataODM01.DBF;
10>setnewnamefordatafile8toF:CLONEdataTOOLS01.DBF;
11>setnewnamefordatafile9toF:CLONEdataUSERS01.DBF;
12>setnewnamefordatafile10toF:CLONEdataXDB01.DBF;
13>DUPLICATETARGETDATABASETOCLONE_DB
14>LOGFILE
15>GROUP1(F:clonedataREDO01.DBF)SIZE10M,
16>GROUP2(F:clonedataREDO02.DBF)SIZE10M,
17>GROUP3(F:clonedataREDO03.DBF)SIZE10M;
18>}

分派的通道:d1
通道d1:sid=8devtype=DISK

正在实行命令:SETNEWNAME

正在实行命令:SETNEWNAME

正在实行命令:SETNEWNAME

正在实行命令:SETNEWNAME

正在实行命令:SETNEWNAME

正在实行命令:SETNEWNAME

正在实行命令:SETNEWNAME

正在实行命令:SETNEWNAME

正在实行命令:SETNEWNAME

正在实行命令:SETNEWNAME

启动DuplicateDb于2004-06-2821:43:51

正在打印存储的剧本:MemoryScript
{
setuntilscn261688166;
setnewnamefordatafile1to
"F:CLONEDATAYSTEM01.DBF";
setnewnamefordatafile2to
"F:CLONEDATAUNDOTBS01.DBF";
setnewnamefordatafile3to
"F:CLONEDATACWMLITE01.DBF";
setnewnamefordatafile4to
"F:CLONEDATADRSYS01.DBF";
setnewnamefordatafile5to
"F:CLONEDATAEXAMPLE01.DBF";
setnewnamefordatafile6to
"F:CLONEDATAINDX01.DBF";
setnewnamefordatafile7to
"F:CLONEDATAODM01.DBF";
setnewnamefordatafile8to
"F:CLONEDATATOOLS01.DBF";
setnewnamefordatafile9to
"F:CLONEDATAUSERS01.DBF";
setnewnamefordatafile10to
"F:CLONEDATAXDB01.DBF";
restore
checkreadonly
clonedatabase
;
}
正在实行剧本:MemoryScript

正在实行命令:SETuntilclause

正在实行命令:SETNEWNAME

正在实行命令:SETNEWNAME

正在实行命令:SETNEWNAME

正在实行命令:SETNEWNAME

正在实行命令:SETNEWNAME

正在实行命令:SETNEWNAME

正在实行命令:SETNEWNAME

正在实行命令:SETNEWNAME

正在实行命令:SETNEWNAME

正在实行命令:SETNEWNAME

启动restore于2004-06-2821:43:54

通道d1:正在入手下手恢单数据文件备份集
通道d1:正在指定从备份集恢复的数据文件
正将数据文件00001恢复到F:CLONEDATAYSTEM01.DBF
正将数据文件00002恢复到F:CLONEDATAUNDOTBS01.DBF
正将数据文件00003恢复到F:CLONEDATACWMLITE01.DBF
正将数据文件00004恢复到F:CLONEDATADRSYS01.DBF
正将数据文件00005恢复到F:CLONEDATAEXAMPLE01.DBF
正将数据文件00006恢复到F:CLONEDATAINDX01.DBF
正将数据文件00007恢复到F:CLONEDATAODM01.DBF
正将数据文件00008恢复到F:CLONEDATATOOLS01.DBF
正将数据文件00009恢复到F:CLONEDATAUSERS01.DBF
正将数据文件00010恢复到F:CLONEDATAXDB01.DBF
通道d1:已恢复备份段1
段handle=E:RMANBAKDB_ENCORE_1_1_530053412tag=TAG20040628T210331params=NULL
通道d1:已恢复备份段2
段handle=E:RMANBAKDB_ENCORE_1_2_530053412tag=TAG20040628T210331params=NULL
通道d1:恢复完成
完成restore于2004-06-2821:46:35
sql语句:CREATECONTROLFILEREUSESETDATABASE"CLONE_DB"RESETLOGSARCHIVELOG
MAXLOGFILES50
MAXLOGMEMBERS5
MAXDATAFILES100
MAXINSTANCES1
MAXLOGHISTORY226
LOGFILE
GROUP1(F:clonedataREDO01.DBF)SIZE10485760,
GROUP2(F:clonedataREDO02.DBF)SIZE10485760,
GROUP3(F:clonedataREDO03.DBF)SIZE10485760
DATAFILE
F:CLONEDATAYSTEM01.DBF
CHARACTERSETZHS16GBK


正在打印存储的剧本:MemoryScript
{
switchclonedatafileall;
}
正在实行剧本:MemoryScript

数据文件2已转换成数据文件正本
输出数据文件正本recid=1stamp=530056505文件名=F:CLONEDATAUNDOTBS01.DBF
数据文件3已转换成数据文件正本
输出数据文件正本recid=2stamp=530056505文件名=F:CLONEDATACWMLITE01.DBF
数据文件4已转换成数据文件正本
输出数据文件正本recid=3stamp=530056505文件名=F:CLONEDATADRSYS01.DBF
数据文件5已转换成数据文件正本
输出数据文件正本recid=4stamp=530056505文件名=F:CLONEDATAEXAMPLE01.DBF
数据文件6已转换成数据文件正本
输出数据文件正本recid=5stamp=530056505文件名=F:CLONEDATAINDX01.DBF
数据文件7已转换成数据文件正本
输出数据文件正本recid=6stamp=530056505文件名=F:CLONEDATAODM01.DBF
数据文件8已转换成数据文件正本
输出数据文件正本recid=7stamp=530056505文件名=F:CLONEDATATOOLS01.DBF
数据文件9已转换成数据文件正本
输出数据文件正本recid=8stamp=530056505文件名=F:CLONEDATAUSERS01.DBF
数据文件10已转换成数据文件正本
输出数据文件正本recid=9stamp=530056505文件名=F:CLONEDATAXDB01.DBF

正在打印存储的剧本:MemoryScript
{
setuntilscn261688166;
recover
clonedatabase
deletearchivelog
;
}
正在实行剧本:MemoryScript

正在实行命令:SETuntilclause

启动recover于2004-06-2821:46:37

正在入手下手介质的恢复

通道d1:正在启动到默许方针的存档日记恢复
通道d1:正在恢复存档日记
存档日记线程=1序列=108
通道d1:正在恢复存档日记
存档日记线程=1序列=109
通道d1:正在恢复存档日记
存档日记线程=1序列=110
通道d1:正在恢复存档日记
存档日记线程=1序列=111
通道d1:正在恢复存档日记
存档日记线程=1序列=112
通道d1:已恢复备份段1
段handle=E:RMANBAKLOG_ENCORE_2_1_530055742tag=TAG20040628T214221params=NULL
通道d1:恢复完成
存档日记文件名=F:CLONELOGARC00108.001线程=1序列=108
通道clone_default:正在删除存档日记
存档日记文件名=F:CLONELOGARC00108.001纪录ID=3工夫戳=530056510
存档日记文件名=F:CLONELOGARC00109.001线程=1序列=109
通道clone_default:正在删除存档日记
存档日记文件名=F:CLONELOGARC00109.001纪录ID=4工夫戳=530056510
存档日记文件名=F:CLONELOGARC00110.001线程=1序列=110
通道clone_default:正在删除存档日记
存档日记文件名=F:CLONELOGARC00110.001纪录ID=5工夫戳=530056510
存档日记文件名=F:CLONELOGARC00111.001线程=1序列=111
通道clone_default:正在删除存档日记
存档日记文件名=F:CLONELOGARC00111.001纪录ID=2工夫戳=530056510
存档日记文件名=F:CLONELOGARC00112.001线程=1序列=112
通道clone_default:正在删除存档日记
存档日记文件名=F:CLONELOGARC00112.001纪录ID=1工夫戳=530056510
完成介质的恢复
完成recover于2004-06-2821:46:47

正在打印存储的剧本:MemoryScript
{
shutdownclone;
startupclonenomount;
}
正在实行剧本:MemoryScript

数据库已卸载
Oracle例程已封闭

已毗连到备用数据库(未启动)
Oracle例程已启动

体系全局地区总计319889436字节

FixedSize454684字节
VariableSize109051904字节
DatabaseBuffers209715200字节
RedoBuffers667648字节
sql语句:CREATECONTROLFILEREUSESETDATABASE"CLONE_DB"RESETLOGSARCHIVELOG
MAXLOGFILES50
MAXLOGMEMBERS5
MAXDATAFILES100
MAXINSTANCES1
MAXLOGHISTORY226
LOGFILE
GROUP1(F:clonedataREDO01.DBF)SIZE10485760,
GROUP2(F:clonedataREDO02.DBF)SIZE10485760,
GROUP3(F:clonedataREDO03.DBF)SIZE10485760
DATAFILE
F:CLONEDATAYSTEM01.DBF
CHARACTERSETZHS16GBK


正在打印存储的剧本:MemoryScript
{
catalogclonedatafilecopy"F:CLONEDATAUNDOTBS01.DBF";
catalogclonedatafilecopy"F:CLONEDATACWMLITE01.DBF";
catalogclonedatafilecopy"F:CLONEDATADRSYS01.DBF";
catalogclonedatafilecopy"F:CLONEDATAEXAMPLE01.DBF";
catalogclonedatafilecopy"F:CLONEDATAINDX01.DBF";
catalogclonedatafilecopy"F:CLONEDATAODM01.DBF";
catalogclonedatafilecopy"F:CLONEDATATOOLS01.DBF";
catalogclonedatafilecopy"F:CLONEDATAUSERS01.DBF";
catalogclonedatafilecopy"F:CLONEDATAXDB01.DBF";
switchclonedatafileall;
}
正在实行剧本:MemoryScript

已将数据文件正本列进目次
数据文件正本filename=F:CLONEDATAUNDOTBS01.DBFrecid=1stamp=530056530

已将数据文件正本列进目次
数据文件正本filename=F:CLONEDATACWMLITE01.DBFrecid=2stamp=530056530

已将数据文件正本列进目次
数据文件正本filename=F:CLONEDATADRSYS01.DBFrecid=3stamp=530056531

已将数据文件正本列进目次
数据文件正本filename=F:CLONEDATAEXAMPLE01.DBFrecid=4stamp=530056531

已将数据文件正本列进目次
数据文件正本filename=F:CLONEDATAINDX01.DBFrecid=5stamp=530056531

已将数据文件正本列进目次
数据文件正本filename=F:CLONEDATAODM01.DBFrecid=6stamp=530056531

已将数据文件正本列进目次
数据文件正本filename=F:CLONEDATATOOLS01.DBFrecid=7stamp=530056532

已将数据文件正本列进目次
数据文件正本filename=F:CLONEDATAUSERS01.DBFrecid=8stamp=530056532

已将数据文件正本列进目次
数据文件正本filename=F:CLONEDATAXDB01.DBFrecid=9stamp=530056532

数据文件2已转换成数据文件正本
输出数据文件正本recid=1stamp=530056530文件名=F:CLONEDATAUNDOTBS01.DBF
数据文件3已转换成数据文件正本
输出数据文件正本recid=2stamp=530056530文件名=F:CLONEDATACWMLITE01.DBF
数据文件4已转换成数据文件正本
输出数据文件正本recid=3stamp=530056531文件名=F:CLONEDATADRSYS01.DBF
数据文件5已转换成数据文件正本
输出数据文件正本recid=4stamp=530056531文件名=F:CLONEDATAEXAMPLE01.DBF
数据文件6已转换成数据文件正本
输出数据文件正本recid=5stamp=530056531文件名=F:CLONEDATAINDX01.DBF
数据文件7已转换成数据文件正本
输出数据文件正本recid=6stamp=530056531文件名=F:CLONEDATAODM01.DBF
数据文件8已转换成数据文件正本
输出数据文件正本recid=7stamp=530056532文件名=F:CLONEDATATOOLS01.DBF
数据文件9已转换成数据文件正本
输出数据文件正本recid=8stamp=530056532文件名=F:CLONEDATAUSERS01.DBF
数据文件10已转换成数据文件正本
输出数据文件正本recid=9stamp=530056532文件名=F:CLONEDATAXDB01.DBF

正在打印存储的剧本:MemoryScript
{
Alterclonedatabaseopenresetlogs;
}
正在实行剧本:MemoryScript

数据库已翻开

RMAN>

--实行此步骤必要注重:制止毗连克隆数据库,不然,RMAN将没法一般封闭克隆数据库
(shutdownclone),剩下的步骤没法持续实行。

8、测试克隆数据库

D:oraclein>sqlplus

SQL*Plus:Release9.2.0.5.0-ProductiononMonJun2822:01:462004

Copyright(c)1982,2002,OracleCorporation.Allrightsreserved.

Enteruser-name:sys/sys1@cloneassysdba

Connectedto:
Oracle9iEnterpriseEditionRelease9.2.0.5.0-Production
WiththePartitioning,OracleLabelSecurity,OLAPandOracleDataMiningoptions
JServerRelease9.2.0.5.0-Production

SQL>selectstatusfromv$instance;

STATUS
------------
OPEN

SQL>archiveloglist;
DatabaselogmodeArchiveMode
AutomaticarchivalEnabled
ArchivedestinationF:CLONElog
Oldestonlinelogsequence0
Nextlogsequencetoarchive1
Currentlogsequence1
SQL>


总结:在两台呆板间用RMAN克隆数据库,团体以为,有两点必要注重:

1、在对方针数据库做全库备份时,要注重同时备份日记,短少此步骤,RMAN在克隆时将报NOBACKUPCOPY之类的毛病.
2、要将方针数据库备份的备份集拷贝到克隆呆板的统一个目次(同备份方针数据库时备份集寄存的目次)下,不然,RMAN将报:找不到XXXX备份集.


DBCA是一款能够设置、办理和创建数据库的工具。在初始数据库安装过程当中,假如你选择“创建一个数据库选项(CreateADatabaseoption)”,这一工具就会启动并运转。你能够创建一个基于模板的数据库,也能够从先前的典范中导进一个新的模板。
良多办理职员其实不晓得,只需在命令行中键进dbca这能够进进到DBCA情况。一旦这一工具启动,你能够创建一个新的数据库,设置数据库的INIT.ORA选项,删除一个现有的数据库,大概办理数据库模板。这些数据库模板与安装时天生的模板相似(好比GeneralPurpose,DataWarehouse,和TransactionProcessing)。

在安装过程当中,呈现一个警示对话框以扣问是不是必要保留你的模板。你能够点击No,大概能够在安装时就野生界说你的数据库。DBCA工具可以反省数据库设置并天生一个基于以后操纵体系的模板,乃至能够有选择性地输入以后数据。这一特征就使得它成为将一个数据库转移到另外一呆板大概将一个数据库嵌进到别的有代价产物的优异工具。

DBCA工具将模板存储在一个以.dbc扩大名的文件。一个.dbc文件包括init.ora参数、地位数据文件、日记文件、和数据库中以XML格局的把持文件的列表。假如你选择包括你的数据库数据,这一工具也会天生一个扩大名为.dbj的文件,即一个包括你的数据文件的图象的ZIP紧缩文件。有些用户会想到创建一切这些设置的一个备份,以免在一个新呆板上从头创建一个数据库的需要。

办法二:
利用DBCA克隆一个数据库

有良多变量同意DBCA为Oracle软件将文件安装到符合的路径,好比{ORACLE_BASE}和{DB_NAME}。因为这些只是复杂的XML,可使用一个diff函数疾速检察这些模板之间的不同。比方,GeneralPurpose和DataWarehouse数据库模板之间的不同是在于Oracle9i9.2.0.0的DataWarehouse模板:

TEMPtablespace小于1M.

init.ora参数包含:

star_transformation_enabled被激活。

pga_aggregate_target对照在。

query_rewrite_enabled被激活。

db_file_multiblock_read_count为双倍。

sort_area_size为双倍。

hash_area_size没有被设置。

db_cache_size对照小。

关于TransactionProcessing模板,不同在于:

OracleOLAP选项没有被激活。

init.ora参数包含:

db_block_size为一半。

undo_retention对照小。

pga_aggregate_target对照小。

db_file_multiblock_read_count为一半。

hash_join_enabled被封闭。

db_cache_size对照年夜。

无需创建一个CWMLITEtablespace(由于OLAP选项已被封闭)。

EXAMPLE和SYSTEMtablespaces对照小。

TEMPtablespace为双倍巨细。

当你利用DBCA工具从数据库中输入数据时,DBCA将天生一个以.dfj扩大名的文件,即一个包括每数据文件的源图象的ZIP紧缩文件。这就意味着这些数据在转移过程当中包管了平安性。但是,这些文件并没有很好被EXP和IMP文档化和撑持。一样,这些图象尽年夜多半间接写进到磁盘,而不是相似于IMP的经由过程SQL写进。
支持大型的数据库。可以处理拥有上千万条记录的大型数据库。
精灵巫婆 该用户已被删除
沙发
发表于 2015-1-18 14:56:12 | 只看该作者
理解了存储结构,再阅读下性能优化的章节基本上会对sqlserver有个清晰地认识
飘飘悠悠 该用户已被删除
板凳
发表于 2015-1-22 07:15:47 | 只看该作者
如果我们从集合论(关系代数)的角度来看,一张数据库的表就是一组数据元的关系,而每个SQL语句会改变一种或数种关系,从而产生出新的数据元的关系(即产生新的表)。
若相依 该用户已被删除
地板
发表于 2015-1-30 23:42:16 | 只看该作者
外键的级联更能扩展可能大部分的同行在设计OLTP系统的时候都不愿意建立外键,都是通过程序来控制父子数据的完整性。
冷月葬花魂 该用户已被删除
5#
发表于 2015-2-6 17:03:54 | 只看该作者
而写到本地,我又考虑到效率问题.大家来讨论讨论吧,分数不打紧,就给10分,十全十美,没啥对错,各抒己见,但是要有说服力的哦~
只想知道 该用户已被删除
6#
发表于 2015-2-17 11:56:28 | 只看该作者
多加的系统视图和实时系统信息这些东西对DBA挑优非常有帮助,但是感觉粒度还是不太细。
若天明 该用户已被删除
7#
发表于 2015-3-5 19:37:56 | 只看该作者
需要注意的一点,也是我使用过程中发现的一个问题。在建立function->schema->table后,如果在现有的分区表上建立没有显式声明的聚集索引时,分区表会自动变为非分区表。这一点很让我纳闷。
金色的骷髅 该用户已被删除
8#
发表于 2015-3-12 12:45:56 | 只看该作者
无法深入到数据库系统层面去了解和探究
山那边是海 该用户已被删除
9#
发表于 2015-3-19 22:19:54 | 只看该作者
where子句的作用是在对查询结果进行分组前,将不符合where条件的行去掉,即在分组之前过滤数据,条件中不能包含聚组函数,使用where条件显示特定的行。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-23 11:06

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表