DBA
来源:互联网 发布:淘宝上黄金是真的吗 编辑:程序博客网 时间:2024/05/09 21:55
预热
以系统管理员的身份登录
conn /as sysdba
数据库分为:
- 关系型数据库(常用)
- 对象型数据库(用在军事领域、科研领域)
关系型数据库:有表和行,可以通过select、insert语句去操作的,这个一定是关系型数据库
在CMD中输入sqlplus / as sysdba,可以访问到我们的Oracle数据库
sqlplus是用户进程
通过网络的方式访问Oracle数据库:
sqlplus sys/oracle@ora11g as sysdba
检查监听器状态:
在普通的命令行窗口中输入:lsnrctl status 命令即可
在CMD中启动sql*plus工具:
sqlplus/nolog
更改用户相关信息,比如为用户解锁、上锁:
alter user scott identified by orcl account unlock;
启动数据库
- 数据库启动到MOUNT状态
alter database mount;
在MOUNT状态查看控制文件的存储目录 select status,name,block_size from v$controlfile;
在MOUNT状态查看控制文件的存储目录 select status,name,block_size from v$controlfile;
- 数据库启动到 OPEN 状态
alter database open;
此时可以查看具体表里面的信息了
关闭数据库
此时可以查看具体表里面的信息了
关闭数据库
- 关闭数据库
alter database close;
- 将数据库切换到 DISMOUNT 状态
alter database dismount;
- 关闭数据库
shutdown
修改分享池的大小
alter system set shared_pool_size = 30M;
查看分享池的大小
show parameter shared_pool_size;
查看存储告警追踪文件的参数值
show parameter background_dump_dest;
测试在启动到NOMOUNT状态时,控制文件是否打开
select * from v$controlfile;
在NOMOUNT状态下使用v$parameter视图获得控制文件的位置 show parameter control_files;
查看数据块大小
show parameter db_block_size;
查看数据库高速缓存大小
show parameter db_cache_size;
查看数据库高速缓冲区的分配的内存的大小
show sga;
动态设置数据库告诉缓冲区大小
alter system set db_cache_size = 200M;
查看数据库缓存顾问状态
show parameter db_cache_advice;
修改数据库缓存顾问的状态
alter system set db_cache_advice = on; //on off ready
查看与设置数据库告诉缓冲区相关的信息
select * from v$db_cache_advice;
查看重做日志缓存区
show parameter log_buffer;
重做日志缓存区log_buffer是静态参数,不能动态修改
查看大池大小
show parameter log_buffer;
修改大池大小
alter system set large_pool_size = 30M;
查看Java池大小
show parameter java_pool_size;
修改Java池的大小
alter system set java_pool_size = 60M;
查看排序区的大小
show parameter sort_area_size;
使用scott用户连接数据库
conn scott/orcl@orcl 语法: conn 用户名/密码@数据库
查看系统的归档模式
connect system/oracle@orcl as sysdba;
archive log list;
设置数据库为归档模式的过程
shutdown immediate;
connect /as sysdba;
startup mount;
alter database archivelog;
alter database open;
查看是否设置成功
archive log list;
查看数据库恢复目录的位置
show parameter DB_RECOVERY_FILE_DEST;
强制执行校验点
alter system checkpoint;
desc 描述表结构
启动监听器
$ lsnrctl start 监听器名称;(注意:$ 不要忘了)
查看监听状态
$ lsnrctl status 监听器名称;
测试客户端到[监听器]是否畅通
$ tnsping ORCL; //只要监听器打开,就能ping通,不管数据库有没有启动
测试到数据库服务器的连接
$ sqlplus system/orcl@orcl;
网络配置管理
查看当前数据库参数local_listener的值
show parameter local_listener
查看当前数据库的服务名
show parameter service_name
查看XX监听器的状态
$ lsnrctl status XX
启动XX监听器
$ lsnrctl start XX
注意点:修改local_listener动态注册orcl数据库 时,命令要分行打印,不能再一行打印,否则会出现错误
示例:
我先加了一个监听器
LISTENERTEST =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1522))
)
)
端口是1522
sql执行及检测结果
alter system set local_listener='(address_list=(address=(protocol=tcp)(host=localhost)(port=
1522)))';
7.2.3连接测试
在客户端配置要连接的数据库服务器的实体信息,我在配置文件中加了以下配置:
MYORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl.localdomain)
)
)
测试客户端到监听器是否畅通
$ tnsping myorcl;
测试到数据库的连接:
$ sqlplus 用户名/密码
$ sqlplus system/orcl
确认网络简易连接方式:
select sid,serial#,username,program,machine,status,port from v$session * where username='SYSTEM';
【在sql plus中编写东西,一行不够就换行,不能一直写下去,否则会报错的】
默认情况下 SYSTEM 用户是锁定的,需要解锁方可使用
alter user 用户名 account unlock identified by 数据库;
进入监听控制:
$ lsnrctl
共享连接的配置
MYORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
(CONNECT_DATA =
(SERVER = SHARED)
(SERVICE_NAME = orcl.localdomain)
)
)
配置dispatchers的参数:
alter system set dispatchers='(protocol=tcp)(dispatchers=3)';
修改参数
alter system set max_dispatchers=5;
配置共享服务器的进程数量
alter system set shared_servers=5;
alter system set max_shared_servers=20;
配置共享会话数
alter system set shared_server_sessions=100;
——————————————————————
执行命令如果有如下结果,表示使用了dispatchers建立了共享连接
查询连接池的信息
select connection_pool,status,maxsize from dba_cpool_info;
激活连接池
exec dbms_connection_pool.start_pool();
禁用连接池
exec dbms_connection_pool.stop_pool();
7.5.2如何配置DRCP
查看默认连接池的状态以及相关参数
col connection_pool for a30
set line 120;
select connection_pool,status,maxsize,minsize,inactivity_timeout from dba_cpool_info;
设置池服务器的最大数
exec dbms_connection_pool.alter_param('','maxsize','70');
通过修改tnsnames.ora文件,使得客户端的连接使用drcp连接池功能
MYORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
(CONNECT_DATA =
(SERVER = POOLED)
(SERVICE_NAME = orcl.localdomain)
)
)
查看池服务器的状态信息
select pool_name,num_open_servers,num_requests,num_hits,num_misses from
v$cpool_stats;
内存管理
查看内存目标
show parameter memory target;
更改内存目标
alter system set memory_target=10020M scope=BOTH;
查看maximum PGA allocated的值
select value from v$pgastat where name='maximum PGA allocated';
更改memory_max_target的值
alter system set memory_max_target =1000M SCOPE = SPFILE;
查看对于memory_size的大小设置建议
select * from v$memory_target_advice order by memory_size;
查询 memory_target的大小
show parameter memory_target;
查看PGA相关组件的大小
show parameter area_size;
查看SmartFlash Cache涉及的两个参数
show parameter flash_cache;
设置db_flash_cache_file 和 db_flash_cache_size的参数
alter system set db_flash_cache_file='/u01/flash_cache' scope=spfile;
alter system set db_flash_cache_size=1g scope=spfile;
上面两个参数不是动态参数,所以需要重启数据库之后才能生效
shutdown immediate;
startup
[Solaris和Oracle Enterprise Linux上面才能生效,我在win7上面测试的,所以会出现以下错误:]
startup
ORA-00439: feature not enabled: Server Flash Cache
[之后数据库就启动不起来了]
第九章 用户管理和资源文件
sys作为sysdba登录
$ sqlplus sys/Oracle1234 as sysdba
创建数据库用户
create user jane
identified by american
default tablespace users
temporary tablespace temp
quota 10m on users
password expire;
授予session和resource权限
grant create session,resource to jane;
查看用户的表空间等信息
col username for a30
col default_tablespace for a10
col temporary_tablespace for a15
col password for a20
select username,password,expiry_date,default_tablespace,temporary_tablespac
e,created from dba_users where username='JANE' ;
查看用户表空间配额
select max_bytes from dba_ts_quotas where username='JANE';
查看表空间
select tablespace_name FROM dba_tablespaces;
更改用户表空间
alter user jane default tablespace example quota unlimited on system;
更改配额
alter user jane quota 20m on users;
回收表空间的使用权
alter user jane quota 0 on users;
删除用户
drop user jane;
验证用户是否存在
select username,created,default_tablespace from dba_users where username=' JANE' ;
查看当前系统上的所有用户信息
select username,created,account_status from dba_users;
解锁用户
alter user outln identified by outln account unlock;
查看当前用户所拥有的模式对象
select distinct(object_type) from user_objects;
创建资源概要文件
create profile scott_prof limit
sessions_per_user 10
cpu_per_session 1000
idle_time 10
connect_time 120;
查看概要文件SCOTT_PROF
col profile for a20
col resource_name for a25
col limit for a20
select * from dba_profiles where profile='SCOTT_PROF';
执行创建口令复杂性验证函数的过程
@ C:\app\Administrator\product\11.2.0\dbhome_2\RDBMS\ADMIN\utlpwdmg.sql
验证某某函数是否存在
col ower for a10
col object_name for a20
select owner,object_name,object_type,created from dba_objects where object_ type='FUNCTION' and object_name='XXXXX';
创建口令概要文件
create profile password_prof limit
failed_login_attempts 5
password_life_time 110
password_reuse_time 30
password_lock_time 15
password_grace_time 3;
查看密码概要文件PASSWORD_PROF的口令函数
col resource_name for a25
col limit for a15
select * from dba_profiles where profile='PASSWORD_PROF' and resource_type=
'PASSWORD' ;
修改口令管理概要文件的参数
alter profile password_prof limit
failed_login_attempts 3
password_life_time 60
password_grace_time 7;
删除概要文件
drop profile password_prof;
查看某某配置文件是否存在
select * from dba_profiles where profile = 'XXXX';
控制文件和数据库启动
查看控制文件的位置
1.使用v$parameter来查看控制文件的位置
select value from v$parameter where name='control_files';
2.使用show parameter来查看当前控制文件的位置
show parameter control_files;
3.通过数据字典v$controlfile也可以查看
col name for a50
select status,name from v$controlfile;
查看控制文件所存储的内容
select type,record_size,records_total,records_used from v$controlfile_recor
d_section;
init.ora文件在C:\app\Administrator\product\11.2.0\dbhome_2\dbs这个文件夹里面
SPFILEORCL.ORA文件在
C:\app\Administrator\product\11.2.0\dbhome_2\database这个文件夹里面
使用 alter database backup controlfile 备份控制文件
alter database backup controlfile to 'c:\controlfiles\backup_control_file_2
01601121149.ora';
备份控制文件的第二种方式 备份到追踪文件当中
[首先一定要将sql_trace设置为true]
alter session set sql_trace = true;
alter database backup controlfile to trace;
查看追踪文件的存储目录
show parameter user_dump_dest;
使用数字字典视图v$logfile查看重做日志组信息
col member for a50
select group#,status,type,member from v$logfile;
查看当前的数据库是否处于归档模式
archive log list;
设置数据库的归档模式
shutdown immediate
startup nomount
alter database mount;
alter database archivelog;
查看参数db_recovery_file_dest的值
show parameter db_recovery_file_dest;
添加一个重做日志组
alter database add logfile
('c:\log4.log')
size 10M;
查看当前重做日志组的使用情况
select group#,sequence#,bytes,members,archived,status from v$log;
删除日志组
alter database drop logfile group 4,group 5;
向重做日志组添加重做日志成员
alter database add logfile member
'c:\mem2.log' to group 2,
'c:\mem3.log' to group 3;
删除重做日志组中的一个日志成员
alter database drop logfile member 'c:\mem1.log'
切换日志
alter system switch logfile;
清除联机重做日志
alter database clear logfile group 2;
查看系统改写号 SCN
select dbms_flashback.get_system_change_number from dual;
管理归档日志
查看数据库的归档模式
archive log list;
设置归档模式
- conn /as sysdba ; 以dba的身份登录
- archive log list; 查看数据库的归档模式
- shutdown immediate; 关闭数据库
- startup mount; 启动到mount状态
- alter database archivelog; 设置为归档模式
- archive log list; 查看数据库的归档模式
设置归档进程与归档目录
查看参数 parameter log_archive_max_processes 的值
show parameter log_archive_max_processes;
设置 parameter log_archive_max_processes 的值
alter system set log_archive_max_processes=8;
查询归档目录相关参数
show parameter log_archive_max_processes;
oracle 连接只能dba连接,已连接到空闲例程
数据库没有打开。在windows的service.msc中可以看到oracleSID服务没有启动,直接启动即可,在linux下面用连接到空例程后直接startup即可。
oracle 除了DBA可以连接到空例程启动database外,其他非DBA用户的验证是通过database本身的。所以没有启动database前是不能验证dba以外的用户的。即使是在SQLNET.AUTHENTICATION SERVICES 中配置NTS
--解决有哪些sql语句没有提交
selectsid,serial#,sql_text,executionsfromv$sqljoinv$sessiononv$sql.sql_id=v$session.sql_id
altersystemkillsession'2,28358';
--查看锁 解决:Record is locked by another user
selectt2.username,t2.sid,t2.serial#,t2.logon_timefromv$locked_object t1,v$session t2wheret1.session_id=t2.sid
altersystemkillsession'205,62761';
22GB 34GB
·连接数据库:
sys /as sysdba
·授权dba
·导入数据:
imp yy/yy@orcl file=d:/dmp/tc_inlist2015.dmp full=y ignore=y
--查询users的表空间
select * from dba_data_files where tablespace_name like 'USER%'
--查询表空间的使用率
select total.tablespace_name,round (total.MB, 2) as Total_MB,round (total.MB-free.MB, 2 ) as Used_MB,round ((1 -free.MB/total.MB)* 100, 2 ) as Used_Pct from ( select tablespace_name, sum (bytes)/1024 / 1024 as MB from dba_free_space group by tablespace_name) free,(select tablespace_name, sum(bytes)/ 1024 /1024 as MB from dba_data_files group by tablespace_name) total where free.tablespace_name=total.tablespace_name;
--更改USERS的表空间
alter tablespace USERS add datafile 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\USERS02.DBF' size 3 G autoextend on ;
--重新更改表空间的大小
alter database datafile 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\USERS02.DBF' resize 30G;
--再添加两个数据文件以防止空间不够
alter tablespace CMTSMAIN_TS add datafile 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\USERS03.DBF ' size 30G autoextend on;
alter tablespace CMTSMAIN_TS add datafile 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\USERS04.DBF ' size 30G autoextend on;
如果表空间不够会报如下异常:
若果操作没有问题,导入失败的原因绝大部分原因是表空间不够
有相同表情况的导入:
首先将数据库疑似要重命的表重新命名rename一下,在导入即可
Export file created by EXPORT:V11.02.00 via conventional path
IMP-00013: only a DBA can import a file exported by another DBA
IMP-00000: Import terminated unsuccessfully
这样解决:
$ imp sysdba/sysdba@orcl full=y file=d:\dreamstart\exchange.dmp ignore=y
解释:全部用dba账户
0 0
- DBA
- DBA
- DBA
- dba
- dba
- DBA
- DBA
- DBA
- DBA
- DBA
- DBA-LES01
- dba 版
- Oracle DBA
- 管理员DBA
- ORACLE DBA
- 什么是DBA
- dba职业规划
- 什么是DBA
- 解决tomcat服务器无法启动-java.net.BindException 端口被占用问题
- Android项目的持续集成:Gradle+SonarQube+Jenkins
- JSON的遍历方式
- LeetCode 374. Guess Number Higher or Lower
- Sizeof与strlen区别以及用法
- DBA
- 深挖SpringMVC_06_SpringMVC文件上传
- AppBarLayout、CollapsingToolBarLayout、ToolBar组合实现狂拽屌炸天头部效果
- 从QQ浏览器缓存文件中提取出完整的视频
- C++数据序列化之MessagePack
- 442. Find All Duplicates in an Array (M)
- CSS3-2D及3D效果以及过渡
- Kail Linux 可用源(亲测可用20170102)
- LeetCode 455. Assign Cookies