登录oracle和创建用户和一些基本操作

sys和system这是2个默认的具有非常高的管理权限的用户,其中sys是最高管理员用户,system次之,权限不如sys大。

我们下来对oracle登录做个简单的了解

sys用户是最高管理员用户,那我们就用这个sys用户登录oracle:

sqlplus / as sysdba

sqlplus:oracle登录命令

as sysdba:因为sys是最高管理员,所以需要加这句话。

但我们使用sys用户登录到了oracle数据库,是这样的

menu.saveimg.savepath20181203133658.jpg

生产环境下我们是不会用sys和system两个账户操作数据库的,因为这两个用户权限太大,非常危险,所以我们需要创建用户来操作oracle数据,既然这样,我们就直接创建表空间,再来创建对应的账户来管理这个表空间

#查看oracle数据存放路径
select name from v$datafile;
#创建表空间
create tablespace TEST #表空间名TEST
logging
datafile 'd:\ORACLE\DATA\TEST.DBF' #数据存放物理位置
size 2000m  #表空间大小
autoextend on #表空间自增长
next 50m maxsize 20480m #布阶50m,最大尺寸20G
extent management local;

查看表空间大小

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;

如果后期发现表空间不足,扩展表空间命令

alter database datafile 'd:\ORACLE\DATA\TEST.DBF' resize 40000m

除了上述增加表空间的方法还有一种方法是增加表空间文件来达到增加空间的目的

alter tablespace 表空间名称 add datafile '新的数据文件地址' size 数据文件大小

关闭表空间自增长命令

alter database datafile 'd:\ORACLE\DATA\TEST.DBF' autoextend off;

接着我们再创建账户指派到这个表空间

#账户merci密码admin
create user merci identified by admin default tablespace TEST;

接着我们给此账户授权

grant dba to merci

接着我们试试用新的账户登录下吧

connect merci/admin
#退出以后连接方式是
sqlplus merci/admin

最后附上查询表空间使用率的sql语句,方便以后查询使用

第一种:

SELECT a.tablespace_name                        "表空间名",
       total                                    "表空间大小",
       free                                     "表空间剩余大小",
       ( total - free )                         "表空间使用大小",
       Round(( total - free ) / total, 4) * 100 "使用率   %"
FROM   (SELECT tablespace_name,
               Sum(bytes) free
        FROM   DBA_FREE_SPACE
        GROUP  BY tablespace_name) a,
       (SELECT tablespace_name,
               Sum(bytes) total
        FROM   DBA_DATA_FILES
        GROUP  BY tablespace_name) b
WHERE  a.tablespace_name = b.tablespace_name

返回结果如图

menu.saveimg.savepath20181203140831.jpg

第二种:

SELECT TABLESPACE_NAME "表空间",
       To_char(Round(BYTES / 1024, 2), '99990.00')
       || ''           "实有",
       To_char(Round(FREE / 1024, 2), '99990.00')
       || 'G'          "现有",
       To_char(Round(( BYTES - FREE ) / 1024, 2), '99990.00')
       || 'G'          "使用",
       To_char(Round(10000 * USED / BYTES) / 100, '99990.00')
       || '%'          "比例"
FROM   (SELECT A.TABLESPACE_NAME                             TABLESPACE_NAME,
               Floor(A.BYTES / ( 1024 * 1024 ))              BYTES,
               Floor(B.FREE / ( 1024 * 1024 ))               FREE,
               Floor(( A.BYTES - B.FREE ) / ( 1024 * 1024 )) USED
        FROM   (SELECT TABLESPACE_NAME TABLESPACE_NAME,
                       Sum(BYTES)      BYTES
                FROM   DBA_DATA_FILES
                GROUP  BY TABLESPACE_NAME) A,
               (SELECT TABLESPACE_NAME TABLESPACE_NAME,
                       Sum(BYTES)      FREE
                FROM   DBA_FREE_SPACE
                GROUP  BY TABLESPACE_NAME) B
        WHERE  A.TABLESPACE_NAME = B.TABLESPACE_NAME)
--WHERE TABLESPACE_NAME LIKE 'CDR%' --这一句用于指定表空间名称
ORDER  BY Floor(10000 * USED / BYTES) DESC;

menu.saveimg.savepath20181203140912.jpg

 

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://sulao.cn/post/362.html

我要评论

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。