数据库运行
依赖不同类型的文件 ,数据文件 参数文件 控制文件 redo日志文件 运行日志文件 审计日志文件等
数据文件 就是表空间文件 存储数据库的数据文件
参数文件 用户修改的配置信息
控制文件 数据库最重要的文件 记录数据库的状态 表空间信息等
redo文件 保障数据库异常退出 不丢失数据
运行日志文件 记录数据库运行中的日志 用于问题定位
审计日志文件 记录DDL DCL DML 等SQL命令
参数文件位置 : /opt/zenith/app/data/cfg/zengine.ini 在数据文件的cfg目录下
#修改 alter system checkpoint_pages = 20000 scope =both ;
#查看 select * from DV_parameters where name = "checkpoint_pages"
控制文件 : 参数文件中制定控制文件位置
control_files = /opt/zenith/data/ctrl1 /opt/zenith/data/ctrl2 /opt/zenith/data/ctrl3
控制文件有三个副本 每次修改三个副本同时修改
系统重启时 通过检测 某个副本损坏 尝试使用其他副本 进行加载 同时修复损坏副本
控制文件可以指定不同路径 提高可靠性
控制文件信息:
系统版本号 表空间列表 数据文件列表 redo文件列表 归档日志列表 系统SCN CHECKpoint 的RCY point/LRP point
redo日志
WAL write ahead log 预写日志
修改数据页面时记录redo日志
事务提交保证redo日志写入磁盘
通过checkpoint 后台线程将修改的数据写入磁盘
异常恢复时通过 redo日志恢复数据
redo日志文件状态 : in-active active current redo日志循环使用
添加redo日志 alter database add logfile('log1' size 128M) 删除redo日志 : alter database dtop logfile('log1') DV_LOG_FILES 视图
归档日志:归档日志是redo日志的副本
当redo日志 从active状态变成in-active 将数据写入磁盘后,还需要生成对应的归档文件
主备环境主机redo复用
备机是通过主机的redo日志文件重演恢复数据 如果主机redo复用后备机需要 通过归档日志来恢复数据
物理备份中redo复用
物理备份时数据库还能继续使用 会产生新的redo日志 如果redo复用后 需要将归档日志也备份 用来保障可以恢复到备份时的一致数据
归档模式只能在mount模式下设置
alter database archivelog/noarchivelog
归档路径设置
LOG_ACHIVE_DEST_1 = LOCATION = /opt/zenith/data/achive_log
max_arch_files_size 归档日志占最大空间
arch_clean_ignore_backup 归档清理忽略备份
arch_clean_igone_standby 归档清理忽略备机
参数配置演示
# 修改 max_arch_files_size 制定scope=pfile 制定下次重启生效
zsql sys/sys@127.0.0.1:1611
select name,value,isdefault,effective from dv_parameters where name = 'max_arch_files_size'
alter system set max_arch_files_size = 32G scope=pfile
select name,value,isdefault,effective from dv_parameters where name = 'max_arch_files_size'
# 添加三个redo文件
alter database add logfile('log4' size 64M , 'log5' size 128M , 'log6' size 256M)
select id,status,file_name,bytes from dv_log_files
# 删除redo日志文件
alter database drop logfile("log4")
数据库用户管理
数据库用户 角色 权限的介绍
用户: 连接数据库 访问数据库对象 执行SQL语句
角色:角色是一组命名的权限集合 数据库使用角色进行权限组织和划分
意义: 权限分组 并授予角色 可以将角色授予用户 相当于批量授予权限
注意: 角色在系统中唯一 角色名不能重复 不能登录和执行sql语句 不属于用户
权限:执行特定sql语句 以及访问或维护某一对象的能力
权限类型: 系统权限 对象权限
用户权限角色的关系
可以定义角色进行权限的组织和划分 角色赋予其他角色 其他角色拥有此角色所有权限 角色的权限可以继承
模式:schema 是对象的集合 由数据库拥有 并与用户具有相同的名称
模式对象包括: 表 视图 索引 序列 同义词 触发器
用户和模式的关系 : 每个用户有独立的模式 名字和用户相同 创建时对应的模式同时被创建
系统预置用户
SYS 系统初始超级管理员用户 最高权限
PUBLIC 公共用户 无法登陆到数据库 如果授权给public一个权限 就会授权给所有用户此权限
系统预置角色
DBA 系统管理员 系统所有权限
RESOURCE 创建基础对象角色 创建存储过程 创建序列 创建表 创建触发器权限
CONNECT 连接数据库权限
STATISTICS 统计角色 创建删除 查看WSR权限 生成WSR报告权限
# 自定义用户创建
create user username identified by "passwd" default tablespace tablespace1; # 设置表空间
create user username identified by "passwd" account lock ; # 账户锁定不等登录
# 修改用户
alter user 需要有alter user的系统权限 如果用户不存在会报错
# 修改密码
alter user usernmae identified by "password" replace "PASSWD"
# 修改表空间
alter user username default tablespace tablespace_t;
# 修改锁定状态
alter user username account unlock;
# 删除用户 #强制删除数据库对象
drop user if exists username cascade;
# 创建自定义角色 #删除自定义角色
create role role_name ; drop role role_name
DB database DV data_view
系统权限
用户对系统操作的能力 可以执行一定的sql语句
SYS 与DBA角色 拥有所有系统权限 支持通过角色 继承进行系统权限管理
create session 连接数据库 create user 创建新用户 alter user 修改用户 drop user 删除用户 create role 创建角色
drop any role 删除任意角色 alter system 修改系统信息 grant any privilege 授予收回系统权限 grant any role 授予角色
grant any object privilege 授权任意用户的对象权限
对象权限
对数据库对象有执行操作的能力 可以访问或维护某一特定的对象 表 视图 序列 索引 存储过程等
SYS和DBA拥有该对象的所有权限
select 查询 delete 删除数据 upadte 更新数据 alter 更新对象定义 insert 插入 index 创建索引 references 外键约束
系统权限 角色授权
满足条件 :
with admin option / grant any privileges系统权限 ---> 授权系统权限
with admin option / grant any role系统权限 ----> 授权角色
grant create session to username WITH ADMIN OPTION ; # 授权连接 和授权权限
grant teacher TO username ; # 授权teacher 角色
授权角色对象权限
条件:
with grant option / grant any object privileges 并且是该对象的创建者
grant select on table1 to username with grant option ;
回收 revoke
条件:
with admin option / grant any privileges 回收系统权限 with admin option / grant any role系统权限 ----> 授权角色
revoke create session from username / revoke teacher from usernmae
Profile
profile 是配置档案 包含一组资源和密码策略
profile可以通过DDL 语句 create user 或 alter uer 赋予用户
profile 赋予用户后 数据库就要按照profile的规定来 限制用户的资源使用
failed_login_attempts 最大登录次数 默认10次
password_life_time 允许密码使用天数 默认180天
password_lock_time 超过失败次数之后锁定时间 默认1天
password_grace_time 密码失效天数 告警 默认7天
password_reuse_time 密码在多少天内不能重复使用 ulimited
password_reuse_max 指定了当前密码被重用之前密码改变的次数 ulimited
session_per_user 制定了每个用户的连接数 连接数必须小于连接池 ulimited
profile 将profile赋予用户 不会影响当前会话 只能赋予用户 如果创建时为赋予profile 则使用默认profile
系统默认profile
# 自定义profile
create profile pro_common limit passwd_grace_time 10 password_lock_time default password_lift_time unlimited ;
# 修改profile
alter profile pro_common limit password_life_time 30;
# 删除profile 删除后会默认绑定default profile 如果绑定profile 需要加上cascade
alter profile pro_common cascade;
# 赋予profile
alter user username profile pro_common;