Oracle 常用命令

和自甴很熟 提交于 2020-10-23 20:37:01

今日數據庫用戶被鎖,查了下,說是登錄錯誤超過10次用戶就會被鎖定,於是有了解鎖和改密碼操作

以不鏈接數據庫方式啓動sqlplus

    sqlplus /nolog;

以dba身份鏈接數據庫:

    conn /as sysdba;

數據庫啓動模式及用處:

  1. startup:open模式,啓動實例加載並打開數據庫,正常啓動

    1. 執行數據導入導出;

    2. 使用sql*loader提取外部數據;

    3. 需要暫時拒絕普通用戶訪問數據庫;

    4. 進行數據庫移植或升級操作;


    1. 非受限狀態

    2. 受限狀態:startup restrict,只有DBA可以訪問數據庫

  2. startup force:强行启动数据库(貌似存在一定風險)


  3. startup mount:mount模式,啓動實例和加載數據庫,但不打開數據庫(尚未弄明白其中含義)

    1. 重命名數據庫;

    2. 添加、刪除、重命名日誌文件;

    3. 執行數據庫完全恢復模式;

    4. 改變數據的歸檔模式;


  4. startup nomount:nomount模式,啓動實例不加載數據庫。僅爲實例創建各種內存結構和服務進程,用於

    1. 創建數據庫;

    2. 重建控制文件;

狀態間轉換:

    轉open模式:Alter database open

    轉mount模式:Alter database mount

    轉nomount模式:Alter database nomount

    受限状态改变为非受限状态:alter system disable restricted session

    非受限状态变为受限状态:alter system enable restricted session

    数据库只读状态:alter database open read only

    数据库读写状态:alter database open read write


關閉數據庫:

    1.shutdown:正常關閉,等待鏈接結束

    2.shutdown immediate:立即關閉

    3.shutdown transactional:關閉事物

    4.shutdown abort:強行關閉(存在風險)


解鎖:

    alter user username account unlock;其中username为被锁定的用户名。

改密碼:

    alter user username identified by password;其中username为用户名,password为新密码。


開啓遠程監聽端口

$lsnrctl start


測試數據庫鏈接:

    tnsping TEST 来获得数据库TEST能否连上


SQL查詢

查看所有表

SQL> select * from tab;


查看数据库存放目录

SQL> select name from v$datafile


查看服务名

SQL> show parameter service


查看实例名

SQL> select * from v$instance;


查看数据库名

SQL> select name from v$database;


查看所有用户信息

SQL> select * fromdba_users;


只查询用户和密码

SQL> select username,password from dba_users;


查看具有sysdba权限的用户

SQL> select * fromv$pwfile_users;


查看当前用户信息

SQL> select * fromdba_ustats;


查看当前用户系统权限

SQL> select * fromuser_sys_privs


查看当前用户角色

SQL> select * fromuser_role_privs


查看指定用户所具有的系统权限

SQL> select * fromdba_sys_privs


查看oracle版本

SQL> select * fromv$version


查看视图信息

SQL> select * fromuser_views


用戶區別

sys和system用户区别
1>.存储数据重要性不同
sys存放数据字典的基表和视图,由数据库自己维护,任何用户都不能手动更改,sys用户拥有dba、sysdba、sysoper等角色或权限,是oracle权限最高用户。
而system用户只存放一些一级的内部数据,如oracle的一些特性或工具的管理信息。用于数据库管理,System用户拥有普通dba角色权限。



2>.权限不同
sys用户具有sysdba或sysoper系统权限,登录em也只能用这两个身份,不能用normal。
system用户只能用normal身份登录em,除非你对它授予了sysdba的系统权限或syspoer系统权限。



sysdba和sysoper两个系统权限区别
normal是普通用户
sysdba拥有最高的系统权限,登录后是sys
sysoper主要用来启动、关闭数据库,sysoper登录后用户是public



dba和sysdba的区别
先了解下oracle服务的创建过程:创建实例 --> 启动实例 --> 创建数据库
启动过程:实例启动 --> 装载数据库 --> 打开数据库
sysdba是管理oracle实例的,它的存在不依赖于整个数据库完全启动,只要实例启动了,它就已经存在,以sysdba身份登录,装载数据库,打开数据库。只有数据库打开了,或者整个数据库完全启动后,dba角色才有存在的基础。



标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!