1. oracle 基本使用

基本使用

开机关机

shutdown immediate 时候会进行一致性检查(或shu immediate)
而shutdown abort不进行一致性检查,所以再次打开的时候需要进行自动恢复。

SHUTDOWN     -- NORMAL(缺省值):
-- 不允许新的连接、等待会话结束、等待事务结束、做一个检查点并关闭数据文件。启动时不需要实例恢复。
SHUTDOWN TRANSACTIONAL:
-- 不允许新的连接、不等待会话结束、等待事务结束、做一个检查点并关闭数据文件。启动时不需要实例恢复。
SHUTDOWN IMMEDIATE:
-- 不允许新的连接、不等待会话结束、不等待事务结束、做一个检查点并关闭数据文件。没有结束的事务是自动rollback的。启动时不需要实例恢复。
SHUTDOWN ABORT:
-- 不允许新的连接、不等待会话结束、不等待事务结束、不做检查点且没有关闭数据文件。启动时自动进行实例恢复。

开机

startup mount;
alter database open

查看数据库开机时间以及运行时间

COL STARTUP_TIME FOR A35;
COL RUN_TIME FOR A35;
select to_char(startup_time,'yyyy-mm-dd HH24:MI:SS') startup_time,
TRUNC(sysdate - (startup_time))||'Day '||TRUNC(24*((sysdate-startup_time) -TRUNC(sysdate-startup_time)))
||'Hour '||MOD(TRUNC(1440*((SYSDATE-startup_time)-
TRUNC(sysdate-startup_time))),60)
||'min '||MOD(TRUNC(86400*((SYSDATE-STARTUP_TIME)-
TRUNC(SYSDATE-startup_time))),60)
||'s' run_time
from v$instance;

查看scn号

select to_char(CURRENT_SCN) from v$database;
select checkpoint_change# from v$database;

查看数据文件scn号

select name,checkpoint_change# from v$datafile;

查看数据库环境

linux版本

数据库实例名

-- 数据库名
select name from v$database
-- 实例名 SID
select instance_name from v$instance

数据库版本

select * from v$session;

数据库字符集

select userenv('language')from dual;

查看oracle使用的端口

可以通过tnsnames.ora文件读取数据库信息

# 默认端口post=1521

数据库信息

查看数据库状态

select inst_id, instance_name, version, status from gv$instance;

查看数据库模式(只读,读写)

select open_mode, from v$database;

更改数据库模式

-- 更改为只读-- sh> sqlplus / as sysdbaselect open_mode from v$database;shutdown immediate        --确保没有真正执行的进程后再执行startup mount        --加载数据库alter database open read only        --变更数据库为只读状态startup open read only;-- 将数据库由只读状态变更为可写状态-- sh> sqlplus / as sysdbaselect open_mode from v$database;shutdown immediate;startup open read write;

查看一些数据库状态(保护模式)

select open_mode, protection_mode, database_role, switchover_status from v$database;

查看数据库数据量

查看数据库某用户的视图量

select count(*) from dba_views u where u.owner='USER_NAME';

查看数据库某用户的序列量

select count(*) from dba_sequences where sequence_owner='USER_NAME';

查看某用户的触发器数量

select count(*) from dba_triggers where owner='USER_NAME';

查看数据库表数量

select count(table_name) from dba_tables;

查看数据库总条数

select sum(sample_size) from dba_tables;

查看所有表以及表有多少条数据

SELECT table_name,num_rows FROM user_tables order by num_rows desc;

查看数据库占用空间

select sum(bytes)/1024/1024 from dba_segments;

查看除了 undo 数据文件以外的所有数据文件大小(数据量)

select SUM(SPACE-NVL(FREE_SPACE,0)) "ALL_USED_SPACE(G)" from (select TABLESPACE_NAME, ROUND(SUM(BYTES)/(1024*1024*1024),2) SPACE  from dba_data_files GROUP BY TABLESPACE_NAME) d,(SELECT TABLESPACE_NAME, ROUND(SUM(BYTES)/(1024*1024*1024),2) FREE_SPACE FROM DBA_FREE_SPACE GROUP BY TABLESPACE_NAME) f where d.tablespace_name=f.tablespace_name and d.tablespace_name not like '%UNDO%';-- 或者select (all_used-free_used)/(1024*1024*1024) "used(G)"from(select sum(bytes) all_used	from dba_data_files	where tablespace_name not like '%UNDO%'),	(select sum(bytes) free_used	from dba_free_spacewhere tablespace_name not like '%UNDO%');

查看数据量

set pagesize 1000 linesize 180col owner format a15col COL_SUM for 99999999999999999compute sum of total_size on reportbreak on reportSELECT a.owner, a.total_size, b.numtab, b.col_sum, round((a.total_size/b.numtab) * 10) / 10 AVGFrom 	(SELECT owner, 		round(Sum(bytes) * 10 /1024 /1024 / 1024) / 10 total_size		FROM dba_segments		GROUP BY owner) a,	(SELECT owner, count(*) numtab, sum(NUM_ROWS) col_sum FROM dba_tables GROUP BY owner) bwhere a.owner = b.ownerorder by 2 desc/

表空间和表数量

set pagesize 1000 linesize 180col owner format a15col COL_SUM for 99999999999999compute sum of total_size on reportbreak on reportSELECT a.owner, a.total_size,b.numtab  From (SELECT owner,               round(Sum(bytes) * 10 / 1024 / 1024 / 1024) / 10 total_size          FROM dba_segments         GROUP BY owner) a,       (SELECT owner, count(*) numtab,sum(NUM_ROWS) col_sum FROM dba_tables GROUP BY owner) b WHERE a.owner = b.owner order by 3 desc/

登录

登录oracle:

sqlplus / as sysdba (sqlplus [用户名]/[密码] as sysdba)

以nolog登录并切换成sysdba:

sqlplus /nolog

SQL> conn sys/ as sysdba (conn 用户名/[密码] as sysdba)

查看以什么用户登录的oracle

SQL> show user;

SQL> select user from dual;

查看所有用户名

SQL> select * from all_users;

切换用户

正常操作

SQL> connect username/password;

修改口令并连接到数据库

查看口令

11g版本(需要访问基表):SQL> select name,password from user$ where name=’ ’

其它版本:SQL> select username,password from dba_users where username=’ ’

修改口令并连接到数据库

SQL> alter user 用户名 identified by “密码”;

SQL> conn 用户名/密码;

成功执行完马上把用户名密码修改回原来的口令。

SQL> alter user 用户名 identified by values’口令’

远程登录某个数据库

sqlplus 用户名/密码@IP地址/实例名

sid

数据库的 sid 和字符集最好一次性指定好,不建议修改

如果是空库的话不妨创建一个新库 使用dbca

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值