Use the ALTER SYSTEM statement to dynamically alter your Oracle Database instance. The settings stay in effect as long as the database is mounted.
Modifies a database, or the files and filegroups associated with the database. Adds or removes files and filegroups from a database, changes the attributes of a database or its files and filegroups, changes the database collation, and sets database options. Database snapshots cannot be modified
alter database 数据文件、表空间、日志文件等等,和物理上的文件有关系的一些变更,也就是对数据库的更改,一般改变的是物理上的,通过alter database操作时会触发controlfile header和其他一些物理文件头信息的变化
比如 :alter dtabase rename datafile
alter system 动态的改变实例的属性(参数),也就是对实例的更改,一般是逻辑上的
比如:alter system set db_cache_size
alter session 改变的的是一个会话的属性
比如:alter session set nls_language
1) alter database:
修改的是与数据库相关的一些参数或设置, 在实例重新启动后, 这些修改依然有效.
因为数据库是相关的数据文件,控制文件,以及日志文件。使用alter database是对整个数据库进行修改,
修改的结果是将修改记录到上述某个,或几个文件中,在下次数据库启动时,自然体现你上次对数据库的更
新。
2) alter system:
修改的是当前运行的instance, 对所有的session都生效, 但是在实例重新启动后, 这些修改会不再有效.
因为alter system是针对实例instance的修改的,initSID.ora对instance的运行进行控制,在Oracle9i之
前,使用alter system对系统的修改,不会自动将你的修改记录到initSID.ora文件中,所以下次启动时,
还是原来的设置。
3) alter session:
修改的是用户自己的session, 对于其它session无效. 重新启动或者重新连接后, 都不会再有效.
因为alter session当然是针对具体的某个连接,对它的修改都是暂时性的,会话退出后。
新的会话会使用系统的默认参数。