首页 > Linux操作系统 > Linux操作系统 > oracle体系结构学习笔记
oracle 学习笔记
一、如何创建一个初始化参数文件pfile?
cp init.ora $ORACLE_HOME/dbs/initSID.ora;
pfile文件是一个文本文件可以用文本编辑器打开修改而spfile文件是一个二进制文件不可修改,但是spfile中的内容跟pfile中的内容完全相同。我们也可以用命令来创建spfile文件:
create spfile from pfile;或者create spfile='$ORACLE_HOME/dbs/spfileSID.ora' from pfile='$ORACLE_HOME/dbs/initSID.ora'
也可以根据spfile 创建pfile . create pfile from spfile;
二、根据日志文件手工创建pfile,从而启动instance;
切换到目录:/oracle/admin/orcl/bdump/
[oracle@mylinux bdump]$ ls
alert_ORCL.log orcl_lgwr_4755.trc orcl_p000_4447.trc orcl_p001_4474.trc
orcl_lgwr_4427.trc orcl_lgwr_6878.trc orcl_p000_4467.trc orcl_p001_4489.trc
orcl_lgwr_4447.trc orcl_lgwr_6974.trc orcl_p000_4472.trc orcl_p001_4498.trc
orcl_lgwr_4452.trc orcl_lgwr_7452.trc orcl_p000_4487.trc orcl_p001_4552.trc
orcl_lgwr_4467.trc orcl_lgwr_7519.trc orcl_p000_4496.trc orcl_p001_4556.trc
orcl_lgwr_4476.trc orcl_lgwr_7574.trc orcl_p000_4550.trc orcl_p001_6900.trc
orcl_lgwr_4520.trc orcl_lgwr_8003.trc orcl_p000_4554.trc orcl_pmon_18213.trc
orcl_lgwr_4530.trc orcl_lgwr_8107.trc orcl_p000_6898.trc orcl_pmon_6870.trc
orcl_lgwr_4534.trc orcl_lgwr_9131.trc orcl_p001_4449.trc
orcl_lgwr_4668.trc orcl_lgwr_9246.trc orcl_p001_4469.trc
查看strings alert_ORCL.log 从里面copy出如下内容
processes = 150
__shared_pool_size = 54525952
__large_pool_size = 4194304
__java_pool_size = 4194304
__streams_pool_size = 0
sga_target = 167772160
control_files = /oracle/oradata/orcl/control01.ctl, /oracle/oradata/orcl/control02.ctl, /oracle/oradata/orcl/control03.ctl, /oracle/oradata/orcl/control04.ctl
db_block_size = 8192
__db_cache_size = 96468992
compatible = 10.2.0.1.0
db_file_multiblock_read_count= 16
db_recovery_file_dest = /oracle/flash_recovery_area
db_recovery_file_dest_size= 2147483648
undo_management = AUTO
undo_tablespace = UNDOTBS1
remote_login_passwordfile= EXCLUSIVE
db_domain =
dispatchers = (PROTOCOL=TCP) (SERVICE=orclXDB)
job_queue_processes = 10
background_dump_dest = /oracle/admin/orcl/bdump
user_dump_dest = /oracle/admin/orcl/udump
core_dump_dest = /oracle/admin/orcl/cdump
audit_file_dest = /oracle/admin/orcl/adump
db_name = orcl
open_cursors = 300
pga_aggregate_target = 16777216
切换目录到 /oracle/product/10.2.0/db_1/dbs 目录下,用如vi新建一个pfile文件
vi initSID.ora 打开后 粘贴上面copy中的内容保存并退出。
启动实例的时候我们可以直接指定pfile文件来启动
sqlplus /nolog
conn / as sysdba
startup pfile=$ORACLE_HOME/dbs/initSID.ora
三、手工删除一个数据库
第一步:在dbs目录中带有数据库名的文件都删除
rm -f hc_ORCL.dat initORCL.ora lkORCL orapworcl spfileORCL.ora
第二步:在oradata目录中的带有数据库名的文件都删除
rm -fR orcl/
第三步:在admin目录下实例名给删除掉
rm -fR orcl/
四、linux 命令string 创建一个pfile
strings spfileORCL.ora > initorcl.ora
vi initorcl.ora 全局替换实例名
:%s/orcl/MIS/g 把orcl实例全部替换为MIS
五、新增控制文件
新增控制文件分四步:
第一步:
alter system set control_files='/oracle/oradata/orcl/control01
.ctl', '/oracle/oradata/orcl/con
trol02.ctl', '/oracle/oradata/or
cl/control03.ctl', '/oracle/orad
ata/orcl/control04.ctl' scope=spfile;
第二步:
shutdown immediate;
第三步:
cp control03.ctl control04.ctl
strings spfileSID.ora 里面control_files中增加了一条control04.ctl
第四步:
startup
根据pfile文件创建control文件
第一步:
shutdown immediate;
第二步:
vi initSID.ora 在control_files行添加'/oracle/orad
ata/orcl/control05.ctl'
:wq 保存并退出。
第三步:
cp control02.ctl control05.ctl
第四步:
startup pfile=$ORACLE_HOME/dbs/initSID.ora
OK好了可以查看一下
show parameter cont;
六、维护联机重做日志文件
REDO文件的功能描述
REDO文件存储所有数据库的变更内容和每一次变更所需的重做脚本,是数据库不可缺少的一部分,如果REDO GROUP中只有一个REDO文件,同时这个REDO文件被损坏,则系统切换到这个REDO GROUP时,数据库将直接DOWN机;如果REDO GROUP中有多个REDO文件,其中一个或者多个REDO被损坏,只要该组中还有一个好的REDO文件,则系统将报警(写入alert
REDO文件在数据库恢复时提供前滚所需的内容。
查看REDO相关信息的视图有:V$LOG,V$LOGFILE,V$INSTANCE_RECOVERY
一般情况下,最好有3-5个REDO GROUP,每个REDO GROUP中有两个成员,放在不同的磁盘资源上。同一个REDO GROUP中的REDO文件的大小尽量设置为相同,否则系统以最小的一个为基准,比较浪费空间。各个REDO GROUP的大小也最好一致。
SQL> select * from v$log;
STATUS状态的解释:
CURRENT:当前的REDO文件,REDO BUFFER的内容有LGWR进程写入当前REDO文件,如果丢失该组文件,会造成数据的丢失.
ACTIVE :文件中含有的内容还没有写入到ARCHIVELOG文件中,如果丢失该组文件也会造成数据的丢失.
INACTIVE:已经归档,丢失文件不会造成数据丢失,不过在做数据库的恢复时,该组文件可以用来做前滚操作.
1、手动让日志组切换
alter system switch logfile
2、adding redo files groups 添加日志文件组
desc v$logfile;
alter database add logfile group 4 (/oracle/oradata/orcl/redo04.log) size 50M;
3、add redo file members 添加日志成员
alter database add logfile '/oracle/oradata/orcl/redo05.log' to group 4
4、dropping redo file members 删除日志成员
alter database drop logfile '/oracle/oradata/orcl/redo03.log'
rm -f redo05.log
5、dropping redo files grouos 删除日志组
alter database drop logfile group 4
6、迁移或重命名
第一步::shutdown immediate;
第二步:cp /oracle/oradata/orcl/redo04.log ..
第三步: mv redo04.log redo05.log;
第四步:alter database mount;
第五步:alter database rename file 'oracle/oradata/orcl/redo03.log' to '/oracle/oradata/redo03.log'
第六步:alter database open
查看表空间使用情况
Posted on 2007-03-05 22:45 生活在别处 阅读(4823) 评论(0) 编辑 收藏
查看表空间的名称及大小
select t.tablespace_name, round(sum(bytes/(1024*1024)),0) ts_size
from dba_tablespaces t, dba_data_files d
where t.tablespace_name = d.tablespace_name
group by t.tablespace_name;
====================================
set pages 100
col ts_name form. a20 head 'Tablespace'
col pieces form. 9990 head 'Pcs'
col ts_size form. 999,990 head 'SizeMb'
col largestpc form. 999,990 head 'LrgMB'
col totalfree form. 999,990 head 'FreeMb'
col pct_free form. 990 head '%Free'
col whatsused form. 999,990 head 'Used'
col pct_used form. 990 head '%Used'
col problem head 'Prob??'
--spool /tmp/tbs_size.log
select q2.other_tname ts_name, pieces, ts_size ts_size,
nvl(largest_chunk,0) largestpc, nvl(total_free,0) totalfree,
nvl(round((total_free/ts_size)*100,2),0) pct_free,
ts_size-total_free whatsused,
nvl(100-round((total_free/ts_size)*100,2),100) pct_used,
decode(nvl(100-round((total_free/ts_size)*100,0),100),
85,'+',86,'+',87,'+',88,'+',89,'++',90,'++',91,'++',
92,'++',93,'++',94,'+++',95,'+++',96,'+++',97,'++++',
98,'+++++',99,'+++++',100,'+++++','') problem
from (select dfs.tablespace_name,count(*) pieces,
round(max(dfs.bytes)/1024/1024,2) largest_chunk,
round(sum(dfs.bytes)/1024/1024,2) total_free
from dba_free_space dfs group by tablespace_name) q1,
(select tablespace_name other_tname,
round(sum(ddf2.bytes)/1024/1024,2) ts_size
from dba_data_files ddf2 group by tablespace_name) q2
where q2.other_tname = q1.tablespace_name(+)
order by nvl(100-round((total_free/ts_size)*100,0),100) desc;
七、表空间的类型分为三类:permanent、undo、temporary。
1、查看表空间情况:
SQL> col file_name format a40
SQL> col tablespace_name format a30
SQL> select file_name, tablespace_name from dba_data_files;
FILE_NAME TABLESPACE_NAME
---------------------------------------- ------------------------------
/oracle/oradata/orcl/users01.dbf USERS
/oracle/oradata/orcl/sysaux01.dbf SYSAUX
/oracle/oradata/orcl/undotbs01.dbf UNDOTBS1
/oracle/oradata/orcl/system01.dbf SYSTEM
/oracle/oradata/orcl/example01.dbf EXAMPLE
/oracle/oradata/orcl/paul01.dbs PAUL
/oracle/oradata/orcl/wenchuan01.dbf WENCHUAN
/oracle/oradata/orcl/myundo01.dbf MYUNDO
8 rows selected.
2、创建表空间
create tablespace paul datafile '/oracle/oradata/orcl/mypaul01.dbf ' size 20M;
3、手工创建临时表空间
create temporary tablespace mytemp
tempfile '/oracle/oradata/orcl/mytempfile01.dbf ' size 20M extent management local;
select tablespace_name,contents from dba_tablespaces;
4、创建本地管理表空间
create tablespace wenchun
datafile '/oradata/orcl/wenchun01.dbf' size 20M extent management local uniform. size 128k;
5、修改表空间为只读或读写
alter tablespace wenchun read only ; ----前提是数据必须都commit
alter tablespace wenchun read write;
6、修改表空间为在线或离线
alter tablespace wenchun online;
alter tablespace wenchun offline;
7、查询表空间哪些是自动增长的
SQL> desc dba_data_files;
Name Null? Type
----------------------------------------- -------- ----------------------------
FILE_NAME VARCHAR2(513)
FILE_ID NUMBER
TABLESPACE_NAME VARCHAR2(30)
BYTES NUMBER
BLOCKS NUMBER
STATUS VARCHAR2(9)
RELATIVE_FNO NUMBER
AUTOEXTENSIBLE VARCHAR2(3)
MAXBYTES NUMBER
MAXBLOCKS NUMBER
INCREMENT_BY NUMBER
USER_BYTES NUMBER
USER_BLOCKS NUMBER
ONLINE_STATUS VARCHAR2(7)
SQL> col file_name format a40
SQL> col tablespace_name format a30
SQL> select file_name,tablespace_name,autoextensible from dba_data_files;
FILE_NAME TABLESPACE_NAME AUT
---------------------------------------- ------------------------------ ---
/oracle/oradata/orcl/users01.dbf USERS YES
/oracle/oradata/orcl/sysaux01.dbf SYSAUX YES
/oracle/oradata/orcl/undotbs01.dbf UNDOTBS1 YES
/oracle/oradata/orcl/system01.dbf SYSTEM YES
/oracle/oradata/orcl/example01.dbf EXAMPLE YES
/oracle/oradata/orcl/paul01.dbs PAUL NO
/oracle/oradata/orcl/wenchuan01.dbf WENCHUAN NO
/oracle/oradata/orcl/myundo01.dbf MYUNDO NO
8 rows selected.
8、修改表空间数据文件的大小
alter database datafile '/oracle/oradata/orcl/paul01.dbf' resize 40M;
select file_name,tablespace_name,bytes from dba_data_files;
9、给表空间添加数据文件
alter tablespace wenchun add datafile '/oracle/oradata/orcl/wenchun02.dbf' size 20M;
10、移动表空间的数据文件到xx磁盘里
方法一:
(1)、alter tablespace wenchun offline;
select file_name,tablespace_name,bytes from dba_data_files ----离线后的bytes就为空了。
(2)、mv wenchun02.dbf ..
(3)、alter tablespace wenchun rename datafile '/oracle/oradata/orcl/wenchun02.dbf'
to '/oracle/oradata/wenchun02.dbf'; ----相当于指针指过去目的地。
(4)、alter tablespace wenchun online;
方法二:
(1)、shutdown immediate;
(2)、mv wenchun02.dbf orcl/
(3)、startup mount;
(4)、alter database renmae file '/oracle/oradata/wenchun02.dbf' to '/oracle/oradata/orcl/wenchun02.dbf';
(5)、alter database open;
11、删除表空间
drop tablespace wenchun including contents and datafiles;
12、查看undo表空间是否是自动模式
show parameter undo;
desc dba_tablespaces;
select tablespace_name,contents from dba_tablespaces;
(1)、创建一个undo表空间
create undo tablespace myundo datafile '/oracle/oradata/orcl/myundo01.dbf' size 10M;
select tablespace_name,contents from dba_tablespaces;
(2)、如何切换undo表空间
alter system set undo_tablespace=myundo;
(3)、删除undo表空间
drop tablespace myundo;
rm -f myundo.dbf;
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/24531354/viewspace-677954/ ,如需转载,请注明出处,否则将追究法律责任。