跳至主要内容

Oracle学习笔记20071220

数据库启动是STARTUP, NOMOUNT - MOUNT - OPEN
我们启动数据库,便是并不挂载数据库示例:
SQL>STARTUP NOMOUNT 

然后可以使用
SQL>ALTER DATABASE MOUNT
来挂上数据库。
使用
SQL>STARTUP MOUNT
来启动数据库,并挂载上数据库,但是保持数据库的关闭状态。 稍后可以使用
SQL>ALTER DATABASE OPEN
来打开数据库。
还可以在数据库的启动过程中限制数据库的访问:
SQL>STARTUP RESTRICT
来启动并装载打开数据库示例。
当然还可以在数据库的启动过程中限制数据库的访问:
SQL>STARTUP RESTRICT
来启动并装载打开数据库示例。
稍后可以使用:
SQL>ALTER SYSTEM DISABLE RESTRICTED SESSION

来取消数据库的受限制状态。
在数据库受限制的过程中,只有对数据库拥有CREATE SESSION权限的用户才能够连接到数据库。这种状态有利于对数据库进行备份,恢复,导入,导出等操作。
还有一个命令就是强迫数据库示例启动:
SQL>STARTUP FORCE
 

二、改变数据库的状态:
1、当你只是启动数据库,但是并不有装数据库时,也即是使用:STARTUP NOMOUNT来启动数据库时,必须使用ALTER DATABASE MOUNT来装载数据库,并启动示例。
2、打开一个关闭的数据库:
当你只是装载了数据库,但是保持数据库关闭的情况,也即是使用:
SQL>STARTUP MOUNT

来启动数据库时, 必须使用:
SQL>ALTER DATABASE OPEN
来打开一个关闭的数据库。
3、以只读或者是可读可写的方法打开数据库。注意:可读可写是默认的操作: 
SQL>ALTER DATABASE OPEN READ ONLY

恢复以:
SQL>ALTER DATABASE OPEN READ WRITE

4、在使用过程中对数据库进行限制:
SQL>ALTER SYSTEM ENABLE RESTRICTED SESSION

取消限制: 
SQL>ALTER SYSTEM DISABLE RESTRICTED SESSION
 
即可取消对数据库的限制。

三、数据库的关闭:
oracle的数据库关闭只有一个命令:SHUTDOWN,但是这个命令还有几个选项:NORMAL, IMMEIDATE, TRANSACTION, ABORT。
NORMAL是默认选项。表示正常的关闭,等候客户的请求完成,所有的事务提交,拒绝再次进行连接。
IMMEIDATE:立即关闭数据库,不允许新连接,事务回滚,下一次启动不需要任何恢复过程。 TRASACTION:不允许新连接,完成事务后,有连接的用户将被解除连接,下一次启动不需要任何恢复过程。 
ABORT:不允许新连接,马上断开所有的用户连接,终止事务,不回滚事务。下一次启动需要恢复过程。
插一个LINUX命令,查看单个文件大小可以时候du -sh ... 或者ls -lh ...查看硬盘使用情况df -h

修改CONTROLFILE
命令
SQL> ALTER SYSTEM SET control files
='$HOME/ORADATA/u01/ctrl01.ctl', 2 '$HOME/ORADATA/u02/ctrl02.ctl'
SCOPE=SPFILE;


Log switches can be forced using the ALTER
SQL> SYSTEM SWITCH LOGFILE

添加GROUP
SQL> ALTER DATABASE ADD LOGFILE GROUP
3('$HOME/ORADATA/u01/log3a.rdo','$HOME/ORADATA/u02/log3b.rdo') SIZE 1M

删除到GROUP
SQL> ALTER DATABASE DROP LOGFILE GROUP 3;

制定添加到GROUP
SQL>ALTER DATABASE ADD LOGFILE MEMBER '$HOME/ORADATA/u04/log1c.rdo' TO GROUP
1,'$HOME/ORADATA/u04/log2c.rdo' TO GROUP 2,'$HOME/ORADATA/u04/log3c.rdo' TO
GROUP 3;

删除一个成员
SQL>ALTER DATABASE DROP LOGFILE MEMBER '$HOME/ORADATA/u04/log3c.rdo';

清空LOG
SQL>ALTER DATABASE CLEAR LOGFILE '$HOME/ORADATA/u01/log2a.rdo';
下面是我上次做错的:这个是TABLESPACE
SQL>CREATE TABLESPACE userdata DATAFILE '/u01/oradata/userdata01.dbf'
SIZE 500M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 256K;
SQL>CREATE TABLESPACE userdataDATAFILE '/u01/oradata/userdata01.dbf'
SIZE 500M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 256K;

这个是UNDO TABLESPACE
SQL>CREATE UNDO TABLESPACE undo1 DATAFILE '/u01/oradata/undo101.dbf'
SIZE 40M
SQL>alter system set undo_tablespace='undotbs1'
scope=spfile;(目前看到的是这样的,但是具体为什么不能如同tablespace和temporary tablespace就不知道了)

这个是Temporary Tablespace
SQL>CREATE TEMPORARY TABLESPACE temp TEMPFILE '/u01/oradata/temp01.dbf' SIZE
500M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 10M;

当修改临时表空间的时候语句的步骤如同修改tablespace一样
SQL>alter user default temporary tablespace <临时表>

网页提供http://www.itpub.net/viewthread.php?tid=622120&extra=&page=2
Offline tablespace is not available for data access.
some tablespaces must be online:
-SYSTEM
-Tablespaces with active undo segments
-Default temporary
SQL>ALTER TABLESPACE userdata OFFLINE;
SQL>ALTER TABLESPACE userdata ONLINE;

将tablespace改成read only
SQL>ALTER TABLESPACE userdata READ ONLY;

Move the data file to the WORM drive
SQL>ALTER TABLESPACE ..RENAME DATAFILE ..;

删除tablespace
SQL>DROP TABLESPACE userdata INCLUDING CONTENTS AND DATAFILES;

评论

此博客中的热门博文

Python学习笔记20100117

映射list   Dictionary 是用{}. list 是一那个[]. turple是用() 当你定义过dictionary后,你可以使用d.keys(), d.values(),d.items()将定义后的时候分别显示出来 当然可以将list里的值加减乘除,也可以如一般的定义直接重新复制这个list. 链接与分割字符串的 li=";", join(li) 则显示的就是 分隔符为;的数 如果使用li=li.split(";")则将刚刚;的分隔符删除,而split里也可定义域,如li.split(";",1)   自省 <---这是啥 之前在使用的时候发觉有些书本上的模块不能调用,很多是py脚本定义过的函数。 下载该脚本s,然后上传至指定位置。 >>>import sys >>>sys.path >>>sys.path.append("绝对位置")然后就能调用这些脚本和参数了。 删除 >>>sys.path.pop() 定义一个参数是 def info(test, test1=10.test2=12): info是函数名,test是必备参数,因为没有定义值,test1和test2是可选参数,定义了初始值   以上是外部函数的调用,下面转到内部函数 内部函数有type,str,dir及其他   ---type 返回任意字符的类型,模块也可以。types模块 >>> type(1) <type 'int'> >>> li=[] >>> type(li) <type 'list'> >>> import odbchelper >>> type(odbchelper) <type 'module'> >>> type(sys) <type 'module'> >>> import types ...

Python学习笔记20100128

methodList = [method for method in dir(object) if callable(getattr(object, method))] ###插一句, ifconfig pcn0 unplumb 去禁solaris的网卡plumb起网卡   and, or  已经and-or一起用。 and 两者为真,print第二个数,一个为假一个为真返回假,三者为真返回最后一个真。 or 两个为真,返回第一个, 一个为假一个为真返回真,三者为假返回最后一个假   lambda可快速定义最小值函数   g = lambda x:x*2 g(3) 6 (lambda x:x*2)(3)   doc string print getattr(object,mothod).__doc__   ljust ljust 用空格填充字符串以符合指定的长度。info 函数使用它生成了两列输出并将所有在第二列的 doc string 纵向对齐。 如果小于的话不会从中截断   -----面向对象 首先导入,你可以选择import module or from module import module 如果你要经常访问模块的属性和方法,且不想一遍又一遍地敲入模块名,使用 from module import。 如果你想要有选择地导入某些属性和方法,而不想要其它的,使用 from module import。 如果模块包含的属性和方法与你的某个模块同名,你必须使用 import module 来避免名字冲突   -----类的定义 class Lofs    pass   这个类的名字是 Loaf,它没有从其它类继承。 类名通常是第一个字母大写,如:EachWordLikeThis,但这只是一个习惯,不是一个必要条件。   这个类没有定义任何方法或属性,但是从语法上,需要在定义中有些东西,所以你使用 pass。这是一个 Python 保留字,仅仅表示 “向前走,不要往这看”。它是一条什么都不做的语句,当你删空函数或类时,它是一个很好的占位符。   你可能猜...

Back to Blog again

     My last blog was almost 6 years again.  lots of things happening those years. like marriage, and move to another country, simply relocation, something is very big in my life.      Back to now,  I guess it is a very good time to start with the blog again. no matter daily life or the tech parts.      These blog may or will contains various languages, Chinese, English or Few Japanese. The first thing, I change the profile to Kamata life, Kamata is Japanese words. "鎌田"  as Kanji. why this change happened, due to we will move from Tamagawa "玉川" to Kamata very soon. I hope I can start to write this not daily, but I hope I can do this continuously.