您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 数据库 > oracle数据库日常维护命令
一、启动、关闭数据库1、启动实例的各种模式1)启动实例,装载并打开数据库这是最普通的数据库操作,意味着某个实例已经启动并且数据库也已经装载并打开。这种模式允许任何一个有效的用户连接到数据库,并执行典型的数据访问操作。启动实例接着从默认的服务器参数文件位置读取初始化参数,然后通过STARTUP命令来装载和打开数据库:SQLSTARTUP2)启动实例,不挂载数据库启动实例而不用装载数据库,通常只在整个数据库创建过程中使用该模式:SQLSTARTUPNOMOUNT3)启动实例,并装载数据库可以启动实例并装载数据库,但不打开数据库。该模式允许执行特定的维护操作,例如在下面的任务中必须装载数据库而不打开数据库。*重命名数据文件*添加取消或重命名重做日志文件*允许和禁止重做日志存档选项*执行完整的数据为恢复操作SQLSTARTUPMOUNT4)在启动过程中限制访问数据库可以在受限制的模式下启动实例并装载和打开数据库,以便只有管理人员而不是一般的数据库用户可以利用数据库。当需要完成以下一种任务时,使用这种数据库启动模式:*执行数据库数据的导入或导出操作*执行数据库装载操作用SQL*Loader*暂时阻止一般的用户使用数据*在某个移植过程和升级操作过程中SQLSTARTUPRESTRICT5)强制实例启动-慎用在一些特殊环境下,可能会在启动数据库实例的时候遇到一些问题。一般不要迫使数据库启动,除非存在以下情形:*用SHUTDOWNNORMAL、SHUTDOWNIMMEDIATE、SHUTDOWNTRANSACTIONAL命令不能关闭当前的实例时。*在启动实例的时候遇到一些问题时。SQLSTARTUPFORCE6)启动实例,装载数据库,并启动完整的介质恢复过程如果知道需要介质恢复过程,就可以启动实例并为其装载数据库,以及通过使用带RECOVER选项的STARTUP命令的方法来自动启动恢复过程。STARTUPOPENRECOVER2、改变数据库的可用性1)为实例装载数据库SQLALTERDATABASEMOUNT;2)打开一个关闭的数据库SQLALTERDATABASEOPEN;3)以只读模式打开数据库SQLALTERDATABASEOPENREADONLY;以读写模式打开数据库SQLALTERDATABASEOPENREADWRITE;3、关闭数据库1)以正常模式关闭数据库不允许新的连接、等待会话结束、等待事务结束、做一个检查点并关闭数据文件。启动时不需要实例恢复。SQLSHUTDOWNNORMAL2)以立即模式关闭数据库不允许新的连接、不等待会话结束、不等待事务结束、做一个检查点并关闭数据文件。没有结束的事务是自动rollback的。启动时不需要实例恢复。SQLSHUTDOWNIMMEDIATE3)以事务模式关闭数据库不允许新的连接、不等待会话结束、等待事务结束、做一个检查点并关闭数据文件。启动时不需要实例恢复。SQLSHUTDOWNTRANSACTIONAL4)以终止模式关闭数据库不允许新的连接、不等待会话结束、不等待事务结束、不做检查点且没有关闭数据文件。启动时自动进行实例恢复。SQLSHUTDOWNABORT二、用户登录1、以没有连接数据库的方式启动SQL*Plus#sqlplus/nolog2、在命令提示符环境中以SYSDBA角色登录,并启动SQL*Plus1)#sqlplus/nologSQLconnect/assysdba2)#sqlplus/assysdba3、以某用户身份登录,并启动SQL*Plus1)#sqlplusjsam/jsam1232)#sqlplusjsam/jsam123@orcl3)#sqlplus/nologSQLconnjsam/jsam1234)#sqlplus/nologSQLconnjsam/jsam123@orcl等等...三、安全管理1、用户管理1)创建用户账号名为jsam,密码为jsam123,采用数据库认证方式。默认表空间为users,临时表空间为temp,其中对表空间users的使用限额为500K,表示最多可以使用500K的表空间:SQLcreateuserjsamidentifiedbyjsam123defaulttablespaceuserstemporarytablespacetempquota500konusers;应该为每一个用户分配一个默认表空间。如果在创建用户时不指定表空间,系统表空间将被作为默认表空间。系统表空间包含数据字典,并且经常被Oracle使用。在同一表空间放置多个用户对象会由于磁盘竞争而导致数据库系统性能退化。如果不限制用户使用表空间的限额,可以不加quota500konusers。一般创建用户之后会同时进行授权,通常可授权用户连接数据库、创建表/序列/过程/包/函数/视图等权限:SQLgrantconnect,resource,createviewtojsam;2)修改密码SQLalteruserjsamidentifiedby123456;3)删除用户*删除用户jsamSQLdropuserjsam;*如果在删除用户的同时,还要删除用户所拥有的数据库对象(如表、索引、簇、视图等),则可使用带cascade的drop语句SQLdropuserjsamcascade;4)锁定和解锁用户账号*锁定用户账号SQLalteruserjsamaccountlock;*解锁用户账号SQLalteruserjsamaccountunlock;5)查看当前用户身份SQLshowuser6)查询用户信息*查看当前用户可以访问的所有账号信息、用户ID及创建时间:SQLselect*fromall_users;*查看当前数据库所有的用户账号信息、配置文件及状态:SQLselectusername,profile,account_statusfromdba_users;*查询某用户的表空间使用限额情况(如果没指定限额,将返回norowsselected):SQLselect*fromdba_ts_quotaswhereusername='JSAM';7)查看用户状态SQLselectusername,account_statusfromdba_users;8)用户配置文件*查看所有配置情况SQLselect*fromdba_profiles;*查看默认配置文件参数情况SQLselect*fromdba_profileswhereprofile='DEFAULT';*查看密码有效期配置SQLselect*fromdba_profileswhereprofile='DEFAULT'andresource_name='PASSWORD_LIFE_TIME';*查看引起一个用户被锁定的连续登录失败的次数SQLselect*fromdba_profileswhereprofile='DEFAULT'andresource_name='FAILED_LOGIN_ATTEMPTS';*设置密码有效期为无限期SQLalterprofiledefaultlimitpassword_life_timeunlimited;*修改连续登录失败上锁次数限制SQLalterprofiledefaultlimitFAILED_LOGIN_ATTEMPTSunlimited;SQLalterprofiledefaultlimitFAILED_LOGIN_ATTEMPTS20;2、授予和撤销系统权限1)授予用户多个系统权限SQLgrantcreatesession,createtable,createview,createanyindex,createsequence,createtypetoappdeveloper1;2)如果想要某个用户代为管理某个特定的权限,可在授予系统权限时指定withgrantoption选项。该用户具有以下操作能力:*可以向数据库里的任何其他用户授予或撤销该系统权限;*可以在向其他用户授予系统权限的时候使用withadminoption选项。SQLgrantcreatetabletotableAdminwithadminoption;3)授予用户所有系统权限(除了selectanydictionary)SQLgrantallprivilegestoadmin;4)授予用户DBA权限SQLgrantdbatoadmin;5)撤销已授予用户appdeveloper1的createtype和createsequence系统权限SQLrevokecreatetype,createsequencefromappdeveloper1;3、授予和撤销对象权限1)授予表的全部对象权限SQLgrantallprivilegesonbookinfotobooksystemdeveloper;2)授予指定的对象权限SQLgrantinsert,update,delete,selectonauthorinfotobooksystemdeveloper;3)如果授予对象权限的时候使用了withgrantoption,那么被授权者就能够把获得的对象权限再去授予其他用户。SQLgrantallprivilegesonbookinfotobooksystemdeveloperwithgrantoption;4)撤销已授予用户的update、delete对象权限:SQLrevokeupdate,deleteonauthorinfofrombooksystemdeveloper;4、查看权限信息1)查询用户所拥有的系统权限SQLselectprivilege,admin_optionfromdba_sys_privswheregrantee='JSAM';查看当前用户的系统权限SQLselect*fromuser_sys_privs;2)查询用户拥有的对象权限SQLselectowner||'.'||table_nameobject_name,privilege,grantablefromdba_tab_privswheregrantee='JSAM'orderbyowner,table_name,privilege;查看当前用户的对象权限SQLselect*fromuser_tab_privs;3)查询当前会话可以使用的权限SQLselect*fromsession_privs;5、角色管理角色是具有名称的一组系统权限和对象权限的集合。1)将connect,resource两个角色授予用户SQLgrantconnect,resourcetojsam;2)查看当前会话启用的角色列表SQLselect*fromsession_roles;3)查看当前用户的角色列表SQLselect*fromuser_role_privs;4)查看数据库所有角色SQLselect*fromdba_roles;5)查看某个用户所拥有的角色SQLselectgranted_role,admin_optionfromdba_role_privswheregrantee='JSAM';6)查看角色CONNECT拥有的系统权限SQLselectrole,privilege,admin_optionfromrole_sys_privswhererole='CONNECT';7)查看角色拥有的对象权限SQLselectowner||'.'||table_nameobject_name,privilege,grantablefromrole_tab_privswhererole='CONNECT'orderbyowner,table_name,privilege;四、事务处理1、事务提交1)打开自动提交SQLsetautocommiton;2)关闭自动提交SQLsetautocommitoff;3)显示提交命令SQLcommit;
本文标题:oracle数据库日常维护命令
链接地址:https://www.777doc.com/doc-1889392 .html