–查看Oracle数据库的名称、创建时间、归档日志模式、数据库读写状态;
select name,created,log_mode,open_mode from V$database;
–查看运行Oracle的计算机主机名、实例名、版本号;
col host_name for a10;
select host_name,instance_name,version from V$instance;
–查看所安装的Oracle数据库管理系统版本方面的详细信息;
select * from V$version;
–查看Oracle控制文件名称:
col name for a30;
select name from V$controlfile;
–查看Oracle重做日志配置信息:
select group#,members,bytes,status,archived from V$log;
–公司的Oracle数据库中一共有3组(group)重做日志,每个重做日志组中只有一个成员(member),每个重做日志成员的大小为100M,都没有被归档(最后一列都为NO),正在操作的重做日志组为第3组(status列为CURRENT)。
–查看每个重做日志(成员)文件具体存放位置:
col member for a50;
select group#,member from V$logfile;
–查看数据库日志模式、自动存档状态、存档终点、最早的联机日志序列、当前日志序列:(只能sys查询)
archive log list;
–查看Oracle数据库中的表空间个数及状态:
col tablespace_name for a20;
select tablespace_name,block_size,status,contents,logging from dba_tablespaces;
–注:一共6个表空间,其数据块大小都为8K,都是联机(在线)状态,除了TEMP和EXAMPLE之外都受到重做日志保护;其中TEMP为临时表空间(排序时用),而UNDOTBS1为还原表空间,其他的都是永久表空间;
–查看每个表空间名及所属数据文件号和所属数据文件名:
col file_name for a50;
col tablespace_name for a15;
select file_id,file_name,tablespace_name from dba_data_files;
–查看数据库中有多少用户及创建时间;
select username,created from dba_users;
-----控制文件整理–
–每一个控制文件只属于一个数据库,为了防止控制文件丢失,一个数据库不止一个控制文件,这些控制文件内容完全相同;
–在数据库装载或打开之前,Oracle服务器必须能够访问控制文件。
–查看控制文件配置:
select type,record_size,records_total,records_used from V$controlfile_record_section;
–修改控制文件(必须为有sysdba权限的用户操作,修改完毕后control_files里面的对应的路径下的文件必须有,否则启动不了数据库)
–先查看控制文件名称及存放位置:
col name for a55;
select name from V
c
o
n
t
r
o
l
f
i
l
e
;
或
c
o
l
v
a
l
u
e
f
o
r
a
55
;
s
e
l
e
c
t
v
a
l
u
e
f
r
o
m
V
controlfile; 或 col value for a55; select value from V
controlfile;或colvaluefora55;selectvaluefromVparameter where name =‘control_files’;
alter system set control_files=
‘E:\APP\ADMIN\ORADATA\PIIAPDB\CONTROL01.CTL’,
‘E:\APP\ADMIN\FLASH_RECOVERY_AREA\PIIAPDB\CONTROL02.CTL’ scope=spfile;
–然后关闭数据库:
shutdown immediate;
–然后添加或移动对应的控制文件;
–然后启动数据库:
startup;
–控制文件备份:
alter database backup controlfile to ‘D:\backup\control_bak’;
– —数据库全备份–
–以sysdba权限登录数据库;
connect sys as sysdba;
–找到控制文件所在的目录:
col name for a55;
select name from V$controlfile;
–关闭数据库:
shutdown immediate;
–然后先在D:\Backup目录下分别创建一个名为database的子目录和一个名为dbs的子目录,即D:\Backup\database和D:\Backup\dbs;
host copy E:\APP\ADMIN\ORADATA\PIIAPDB*.* d:\Backup
host copy E:\app\admin\product\11.2.0\dbhome_1\database*.* d:\Backup\database
host copy E:\app\admin\product\11.2.0\dbhome_1\dbs*.* d:\Backup\dbs
–*上面的第一条复制所有的联机重做日志文件、控制文件、数据文件;第二条复制口令文件;第三条复制参数文件;
–*如果数据库崩溃,在关闭数据库之后,将所做的备份复制到原来的目录下,即可使数据库恢复到备份之前的状态,之后startup启动即可;
-----启动或关闭数据库–
–启动数据库方法:
cmd
set ORACLE_SID=数据库名;
sqlplus/nolog;
conn /as sysdba;
startup;
–关闭数据库:
shutdown normal; ##### --等待所有会话结束,不会干扰已经连的会话;
shutdown transactional; ##### --等待所有事务结束;
shutdown immediate; ##### --强制型校验点和关闭文件;
shutdown abort; ##### --立即关闭;
–先关闭后,可直接startup启动数据库;
startup;
-----重做日志文件–
–日志切换和检查点
–强制性产生重做日志切换的命令为:
alter system switch logfile;
–强制性产生检查点的命令为:
alter system checkpoint;
–获取数据库中有多少个重做日志组、每个组有多少个成员及它们的大小和状态:
select group#,sequence#,members,bytes,status,archived from V$log;
–*status含义:inactive:表示实例恢复已不再需要这个联机重做日志组了;
active:表示这个联机重做日志组是活动的;
current:表示这个联机重做日志组是当前组,并隐含是活动的;
unused:表示Oracle从来没有写过该联机重做日志组,这是新添加的状态;
–获取每个重做日志组的每个成员所在的目录和文件名及状态:
ool memeber for a55;
select group#,status,type,member from V$logfile;
–*status含义:
空白:表示该文件正在使用;
stale:表示该文件中的内容是不完全的;
invalid:表示该文件的内容是不可被访问的;
deleted:表示该文件已不再有用了;
–添加和删除联机重做日志文件组:
alter database add logfile (‘d:\Disk3\redo04a’,‘d:\Disk3\redo04b’) aize 50M;
–然后查看添加状态:
select group#,sequence#,members,bytes,status,archived from VKaTeX parse error: Expected 'EOF', got '#' at position 18: …g; select group#̲,status,type,me…logfile;
–删除重做日志组:
alter database drop logfile group 4;
–然后查看添加状态:
select group#,sequence#,members,bytes,status,archived from VKaTeX parse error: Expected 'EOF', got '#' at position 18: …g; select group#̲,status,type,me…logfile;
–*当前重做日志组不能删除,如果要删除,要用【alter system switch logfile】进行切换;每个实例必须最少2个重做日志组才能工作;
–添加和删除重做日志成员(文件)
alter database add logfile member
‘d:\disk3\redo01b.log’ to group 1,
‘d:\disk3\redo02b.log’ to group 2,
‘d:\disk3\redo03b.log’ to group 3;
–然后查看添加状态:
select group#,sequence#,members,bytes,status,archived from VKaTeX parse error: Expected 'EOF', got '#' at position 18: …g; select group#̲,status,type,me…logfile;
–删除重做日志成员
alter database drop logfile member ‘d:\disk3\redo03b.log’;
– —查看Oracle当前的事务 –
–查看Oracle当前正在进行的事务:
select * from v t r a n s a c t i o n ; s e l e c t S Q L T E X T f r o m v transaction; select SQL_TEXT from v transaction;selectSQLTEXTfromvsql,v$transaction where LAST_ACTIVE_TIME=START_DATE;
–用户笔记============
–创建用户
create user dog
identified by “wangwang” ##### --externally
default tablespace PIIAPSPACE
temporary tablespace PIIAP_TEMP
quota 68M on piiapspace ##### --表空间配额,使用表空间piiapspace最多68M
quota 28M on users
password expire; ##### --第一次登陆数据库时,其口令就作废,提示用户输入新的口令
grant create session to dog;
drop user dog;
–修改表空间配额
alter user dog quota 0 on users; ##### --收回dog在users表空间的磁盘空间
–查看dog用户所使用的表空间配额的变化
select q.username,q.tablespace_name,q.bytes/1024/1024 MB,q.max_bytes/1024/1024 “Max MB”
from dba_ts_quotas q
where q.username=‘DOG’;