海妖 发表于 2015-1-16 22:29:31

MYSQL教程之创立Oracle数据库

你不用花费很多时间和金钱来培训现有的职工,或者去花大价钱雇用那些拥有各种证书的开发者。因为MySQL的维护和管理在很大程度上是“傻瓜型”的。oracle|创立|数据|数据库创立Oracle数据库
数据库名:mydb
1:复制一个已存在的数据库目次D:Oracleproduct10.1.0Db_1adminsample
到D:Oracleproduct10.1.0admin目次下,更名为mydb,
将mydbpfileinitsmpl.ora删除,由于这个参数文件对照旧,从上面目次中复制
一个参数文件D:Oracleproduct10.1.0adminorclpfileinit.ora
将改文件放到mydbpfile下,更名为initmydb.ora,并设置以下参数:
db_domain=zhiqiao.com.cn
db_name=mydb
instance_name=mydb
control_files=("D:oracleproduct10.1.0oradatamydbcontrol01.ctl","D:oracleproduct10.1.0oradatamydbcontrol02.ctl","D:oracleproduct10.1.0oradataorclcontrol03.ctl")
background_dump_dest=D:oracleproduct10.1.0adminmydbdump
core_dump_dest=D:oracleproduct10.1.0adminmydbcdump
user_dump_dest=D:oracleproduct10.1.0adminmydbudump
2:在D:Oracleproduct10.1.0Db_1database中创立数据库启动时间接读取的参数文件
initmydb.ora内容为IFILE=D:Oracleproduct10.1.0adminmydbpfile
3:利用orapwd命令创立数据库具有SYSDBA权限用户的口令字文件PWDmydb.ora,
该用户能够办理数据库的启动与封闭,其存储目次为:
D:Oracleproduct10.1.0Db_1database
在体系命令行输出以下命令创立口令文件
C:>orapwdfile=D:oracleproduct10.1.0db_1databasePWDmydb.ora
password=mydbentries=2

4:经由过程实例办理命令在服务内外创立一个实例办理服务,设置启动体例为手动
C:>oradim-NEW-SIDmydb-STARTMODEmanual
-pfile"d:oracleproduct10.1.0adminprodpfileinitmydb.ora"
----》奇异的是服务办理窗口中显现为启动,但封闭堕落?
C:>oradim-SHUTDOWN-SIDmydb-USRPWDmydb
ORA-01012:notloggedon
----》启动堕落
C:>oradim-STARTUP-SIDmydb-USRPWDmydb
ORA-01078:failureinprocessingsystemparameters
LRM-00109:couldnotopenparameterfile
D:Oracleproduct10.1.0adminmydbpfile
-----》由于没创立spfile因而在此指定
C:>oradim-STARTUP-SIDmydb-USRPWDmydb
-PFILE"d:oracleproduct10.1.0adminmydbpfileinitmydb.ora"
ORA-00205:errorinidentifyingcontrolfile,checkalertlogformoreinfo
D:Oracleproduct10.1.0adminmydbdumpalert_mydb.log中显现毛病缘故原由
大抵意义是找不到把持文件,我想大概应当以nomount体例翻开,但oradim没供应这个
选项,因而启动sqlplus。
C:>sqlplus/nolog
SQL*Plus:Release10.1.0.2.0-Productionon礼拜三4月1110:49:132007
Copyright(c)1982,2004,Oracle.Allrightsreserved.
SQL>connect/assysdba
ERROR:
ORA-12560:TNS:protocoladaptererror

SQL>connectsys/mydbassysdba
ERROR:
ORA-12560:TNS:protocoladaptererror

SQL>exit
C:>setoracle_sid=mydb
C:>sqlplus/nolog
SQL*Plus:Release10.1.0.2.0-Productionon礼拜三4月1110:50:212007
Copyright(c)1982,2004,Oracle.Allrightsreserved.
SQL>connsys/mydbassysdba
Connected.

SQL>startupnomount
ORA-01078:failureinprocessingsystemparameters
LRM-00109:couldnotopenparameterfileD:Oracleproduct10.1.0adminmydbpfile
SQL>startupnomountpfile="d:oracleproduct10.1.0adminmydbpfileinitmydb.ora"
ORA-01081:cannotstartalready-runningORACLE-shutitdownfirst
SQL>shutdown
ORA-01507:databasenotmounted

ORACLEinstanceshutdown.
SQL>startupnomountpfile="d:oracleproduct10.1.0adminmydbpfileinitmydb.ora"
ORACLEinstancestarted.
TotalSystemGlobalArea171966464bytes
FixedSize787988bytes
VariableSize145750508bytes
DatabaseBuffers25165824bytes
RedoBuffers262144bytes
----》由于每次都要指定pfile不便利,能够创立一个
C:>sqlplus/nolog
SQL*Plus:Release10.1.0.2.0-Productionon礼拜三4月1111:02:572007
Copyright(c)1982,2004,Oracle.Allrightsreserved.
SQL>connsys/mydbassysdba
Connectedtoanidleinstance.
SQL>createspfilefrompfile;
createspfilefrompfile
*
ERRORatline1:
ORA-01078:failureinprocessingsystemparameters
LRM-00113:errorwhenprocessingfile
D:Oracleproduct10.1.0adminmydbpfile
LRM-00109:couldnotopenparameterfile
D:Oracleproduct10.1.0adminmydbpfile
----》下面的毛病缘故原由是第二步酿成的,个中IFILE="....initmydb.ora"才行。
SQL>createspfilefrompfile;
Filecreated.
----》再启动,不必指定pfile了
SQL>startupnomount
ORACLEinstancestarted.
......
SQL>shutdownimmediate
ORA-01507:databasenotmounted
ORACLEinstanceshutdown.
----》从头启念头器后,orcl数据库老是显现为已启动,mydb为未启动形态
这类情形下orcl实际上是一个余暇历程,数据库nomount阶段,mydb则没启动历程,
所要毗连到mydb会呈现以下毛病:
SQL>connsys/mydbassysdba
ERROR:
ORA-12560:TNS:protocoladaptererror
可从服务办理器中启动OracleServicemydb则能够毗连了。
----》上面两个操纵有点奇异,我创立的是实例,可以使用inst启动不了,必要用srvc
C:>oradim-startup-sidmydb-starttypeinst-usrpwdmydb
ORA-12560:TNS:protocoladaptererror
C:>oradim-startup-sidmydb-starttypesrvc-usrpwdmydb
5:创立数据库
SQL>CREATEDATABASEmydb
2logfile
3group1
4(d:oracleproduct10.1.0oradatamydbedo11.log,
5d:oracleproduct10.1.0oradatamydbedo12.log)size10m,
6group2
7(d:oracleproduct10.1.0oradatamydbedo21.log,
8d:oracleproduct10.1.0oradatamydbedo22.log)size10m
9datafiled:oracleproduct10.1.0oradatamydbsystem01.dbfsize100m
10autoextendonnext10mmaxsizeunlimitedextentmanagementlocal
11sysauxdatafiled:oracleproduct10.1.0oradatamydbsysaux01.dbfsize50m
12undotablespaceundotbs01datafiled:oracleproduct10.1.0oradatamydbundotbs1.dbfsize20m
13defaulttemporarytablespacetemp
14tempfiled:oracleproduct10.1.0oradatamydb        emp01.dbfsize10m
15defaulttablespaceusers
16datafiled:oracleproduct10.1.0oradatamydbusers01.dbfsize10m
17*charactersetzhs16gbk
createdatabasemydb
*
ERRORatline1:
ORA-01092:ORACLEinstanceterminated.Disconnectionforced
----》检察alert_mydb.log发明毛病呈现在创立undotbs1.dbf后,
WedApr1113:48:192007
CREATEUNDOTABLESPACEUNDOTBS01DATAFILEd:oracleproduct10.1.0oradatamydbundotbs1.dbfsize20m
ORA-30012signalledduring:CREATEUNDOTABLESPACEUNDOTBS01DATAFILEd:ora...
WedApr1113:48:212007
Errorsinfiled:oracleproduct10.1.0adminmydbudumpmydb_ora_828.trc:
ORA-00604:erroroccurredatrecursiveSQLlevel1
ORA-30012:undotablespaceUNDOTBS1doesnotexistorofwrongtype
----》为何说UNDOTBS1不存在?检察参数文件,发明这么两行
undo_management=AUTO
undo_tablespace=UNDOTBS1
----》因而删除刚创立没乐成的一些文件,然后修正创立数据库语句从头来
SQL>connsys/mydbassysdba
Connectedtoanidleinstance.
SQL>startupnomount
ORACLEinstancestarted.
----》此次底本是创立乐成了,但我为了纪录毛病缘故原由,将创立好的数据库文件全体删除又来一次,
然后像上面如许修正,又处错了。
TotalSystemGlobalArea171966464bytes
FixedSize787988bytes
VariableSize145750508bytes
DatabaseBuffers25165824bytes
RedoBuffers262144bytes
SQL>l12
12*undotablespaceundotbs01datafiled:oracleproduct10.1.0oradatamydbundotbs1.dbfsize20m
SQL>c/undotbs01/undotbs1/
12*undotablespaceundotbs1datafiled:oracleproduct10.1.0oradatamydbundotbs1.dbfsize20m
SQL>run
......
createdatabasemydb
*
ERRORatline1:
ORA-01092:ORACLEinstanceterminated.Disconnectionforced
----》仍是这个毛病,但毛病缘故原由纷歧样了
WedApr1113:55:392007
Errorsinfiled:oracleproduct10.1.0adminmydbudumpmydb_ora_1344.trc:
ORA-01501:CREATEDATABASEfailed
ORA-01991:invalidpasswordfileD:oracleproduct10.1.0Db_1DATABASEPWDmydb.ORA

----》显现口令文件不成用,估量与方才的删除有关,从头创立口令文件吧
见第三步
----》实行创立数据库的语句创立乐成。

----》数据库创立后,主动处于OPEN形态,一切V$...都能够查询,但其他则不成,如:
SQL>select*fromdba_users;
select*fromdba_users
*
ERRORatline1:
ORA-00942:tableorviewdoesnotexist
----》办理下面的成绩的办法是加载经常使用的数据字典包
SQL>@d:oracleproduct10.1.0db_1dbmsadmincatalog.sql
----》利用system用户毗连呈现的成绩
SQL>connsystem/zhiqiao
ERROR:
ORA-01017:invalidusername/password;logondenied
Warning:YouarenolongerconnectedtoORACLE.
SQL>connsys/mydbassysdba
Connected.
SQL>grantconnecttosystemidentifiedbymydb;
Grantsucceeded.
SQL>connsystem/mydb
ERROR:
ORA-06550:line1,column7:
PLS-00201:identifierDBMS_APPLICATION_INFO.SET_MODULEmustbedeclared
ORA-06550:line1,column7:
PL/SQL:Statementignored
ErroraccessingpackageDBMS_APPLICATION_INFO
Connected.
----》呈现毛病,但毗连上了,毗连orcl,大概用导游创立时没有这个成绩。
SQL>showuser;
USERis"SYSTEM"
----》除数据字典包外,一般还要加载以下包
1:PL/SQL程序包catproc.sql
2:远程数据复制catrep.sql
3:JAVA程序包initjvm.sql
4:体系情况文件,必需以system用户上岸db_1sqlplusadminpupbld.sql
加载PL/SQL程序包时呈现良多毛病,表或视图不存在,不晓得为何。


平台即服务PaaS、基础设施即服务IaaS、软件即服务SaaS都是我们比较熟悉的MySQL学习教程,现在又出现了数据库即服务DBaaS,以基于云的方式存储结构化数据。

冷月葬花魂 发表于 2015-1-19 15:03:47

可以动态传入参数,省却了动态SQL的拼写。

活着的死人 发表于 2015-1-25 23:15:48

换言之,只有在不断的失败中尝试成功,而关于失败的总结却是很少的

小妖女 发表于 2015-2-4 13:14:35

一直以来个人感觉SQLServer的优化器要比Oracle的聪明。SQL2005的更是比2k聪明了不少。(有次作试验发现有的语句在200万级时还比50万级的相同语句要快show_text的一些提示没有找到解释。一直在奇怪。)

再见西城 发表于 2015-2-9 23:19:55

我个人认为就是孜孜不懈的学习

仓酷云 发表于 2015-2-28 04:42:33

备份方面可能还是一个老大难的问题。不能单独备份几个表总是感觉不爽。灵活备份的问题不知道什么时候才能解决。

谁可相欹 发表于 2015-3-9 21:14:57

两个月啃那本sqlserver2005技术内部-存储引擎,花了几个月啃四本书

分手快乐 发表于 2015-3-17 01:10:22

分区表效率问题肯定是大家关心的问题。在我的试验中,如果按照分区字段进行的查询(过滤)效率会高于未分区表的相同语句。但是如果按照非分区字段进行查询,效率会低于未分区表的相同语句。

简单生活 发表于 2015-3-23 14:24:51

换言之,只有在不断的失败中尝试成功,而关于失败的总结却是很少的
页: [1]
查看完整版本: MYSQL教程之创立Oracle数据库