一、重启数据库、监听
(1) 以oracle身份登录数据库,命令:su -oracle
(2) 进入Sqlplus控制台,命令:sqlplus /nolog
(3) 以系统管理员登录,命令:connect / as sysdba
(4) 启动数据库,命令:startup
(5) 如果是关闭数据库,命令:shutdown immediate
(5.1) 强制关闭数据库,命令 : shutdown abort;
(6) 退出sqlplus控制台,命令:exit
(7) 进入监听器控制台,命令:lsnrctl
(8) 启动监听器,命令:start
(9) 关闭监听器,命令:stop
(9) 退出监听器控制台,命令:exit
二、数据库连接池异常(常见于数据库过多连接导致其他人无法连接)
--数据库连接池异常
1、查询连接数
select username,count(username) ,MACHINE from v$session where username is not null group by username,MACHINE;
2、查看processes和sessions参数
show parameter processes
show parameter sessions
3、修改processes和sessions值
SQL> alter system set processes=300 scope=spfile;
系统已更改。
SQL> alter system set sessions=335 scope=spfile;
系统已更改。
3. 修改processes和sessions值必须重启oracle服务器才能生效
ORACLE的连接数(sessions)与其参数文件中的进程数(process)有关,它们的关系如下:
sessions=(1.1*process+5)
三、数据库归档文件异常(数据库报错,归档错误)
oracle用户下:
(1)rman target /
(2)crosscheck archivelog all;
(3)DELETE ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE-3';※COMPLETED BEFORE 'SYSDATE-3'是参数 如果执行DELETE ARCHIVELOG ALL则会删除所有归档日志
(4)去/home/oracle/app/fast_recovery_area/orcl/ORCL路径下找到.arc结尾的文件删掉
四、数据库数据导入导出:
--进入Sqlplus控制台
sqlplus /nolog
--以系统管理员登录,命令:
connect / as sysdba
--删除用户和表空间(选用)
drop user 用户名 cascade;
DROP TABLESPACE 表空间名称 INCLUDING CONTENTS AND DATAFILES;
--创建表空间
create tablespace 表空间名称 datafile '表空间文件存放地址例如:(/home/oracle/report0426.dbf)' size 表空间初始大小例如:(20480M) AUTOEXTEND ON NEXT 每次自增长大小例如:(200M) extent management local;
--注:oracle 数据库表空间有32G的上限,,如果超过此大小会导致超长..所以需要额外添加表空间,如果超过则可以添加多次
alter tablespace 表空间名称 add datafile '表空间附加文件地址例如:(/home/oracle/report042601.dbf)' size 20480M autoextend on next 100M maxsize UNLIMITED;
--创建用户绑定表空间并赋权限
create user 用户名 identified by 用户密码 default tablespace 表空间名称;
grant connect,resource,imp_full_database,unlimited tablespace to 用户名;
grant dba to 用户名;
五、查看数据库相关信息
sqlplus / as sysdba
--1、查看表空间的名称及大小
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;
----1)查询所有表空间
select tablespace_name from dba_tablespaces;
select tablespace_name from user_tablespaces;
----3、查询系统用户
select * from all_users;
select * from dba_users;
----4、数据库版本
select * from v$version;
--删除用户
DROP USER tams_jstams CASCADE;
六、多次错误登陆导致数据库被锁:
ERROR:ORA-28000:the account is locked。
oracle执行命令 : alter user scott account unlock;
七、数据库优化数据前置查询-查询执行最长时间的语句
select *
from (select sa.SQL_TEXT,
sa.SQL_FULLTEXT,
sa.EXECUTIONS "执行次数",
round(sa.ELAPSED_TIME / 1000000, 2) "总执行时间",
round(sa.ELAPSED_TIME / 1000000 / sa.EXECUTIONS, 2) "平均执行时间",
sa.COMMAND_TYPE,
sa.PARSING_USER_ID "用户ID",
u.username "用户名",
sa.HASH_VALUE
from v$sqlarea sa
left join all_users u
on sa.PARSING_USER_ID = u.user_id
where sa.EXECUTIONS > 0
order by (sa.ELAPSED_TIME / sa.EXECUTIONS) desc)
where rownum <= 50;