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;
  •  数据库启动到 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
原创粉丝点击