Alter database compared to alter system
Hi all,
Please,I think -and I hope I'm not wrong- that we use ALTER SYSTEM to modify the value of an initialization parameter.But when do we use alter database?
Thanks.
ALTER SYSTEM - applicable to the specific instance. It will be more clear if you think of a RAC environment - where one can alter the properties for a particular instance (system).
ALTER DATABASE - applicable to the physical aspects of the databases f.ex. data files.
Similar Messages
-
"Alter system set command" in a RAC database!!
Hi, all.
The database is (10.2.0.2.0) 2- node RAC database on 32-bit windows 2003
EE SP1.
I issued the following command on Node 1 database.
--> Alter system set db_block_buffers= xxx sid='rac1';
I was able to see "PE enqueue" in top 5 wait event section from an AWR report.
In addition, I was able to find "PZ99","PZ98" process dump file in BDUMP.
Soon later, I could find CKPT and DBWR hung.
Is there anyone who experienced this issue?
Thanks and Regards.
Message was edited by:
user50729010.2.0.2 has some bug which is fixed 10.2.0.3
You check sequence cache. If it has less value, increase it to 10000.
select CACHE_SIZE from dba_sequences where SEQUENCE_OWNER='SYS' and SEQUENCE_NAME='AUDSES$';
SQL> alter sequence sys.audses$ cache 10000;
Ashok -
ALTER SYSTEM/DATABASE acts upon?
Hi,
I have a question inside my head since a long time now, I did lot of googling, but did'nt find a precise answer.
All DMLs will be served by Dedicated/Shared server processes as per the configuration. Selects/Updates/Deletes/Inserts will have their execution plans generated to/used from the Library Cache of shared pool; will have their corresponding buffers put into the RLB and from there into redo log files. This is found every where on the web.
But what happens when we issue an "ALTER SYSTEM ... ... ..." or an "ALTER DATABASE ... ... ..."?
Does the user process adjust the SGA_TARGET/PGA_AGGREGATE_TARGET or it just signals MMAN?
Does it Flush Buffer Cache/Shared Pool or does it just signal the MMAN again? What happens inside?
Does it kill the sessions itself or just signal the PMON?
Which process starts up first and takes on when "STARTUP;" is issued?
Which process gears up to Close, Dismount, and Shut down the database stagewise in the mode requested by "SHUTDOWN ....;"?
Any link that discusses these and other such internal Oracle algorithms/implementations would be greatly helpful.
Thanks,
Aswin.Hi,
ice_cold_aswin wrote:
Does it kill the sessions itself or just signal the PMON?
Which process starts up first and takes on when "STARTUP;" is issued?
Which process gears up to Close, Dismount, and Shut down the database stagewise in the mode requested by "SHUTDOWN ....;"?I think at least these can be answered by using strace. For example, starting up an instance:
[oracle@localhost ~]$ strace -o trc.txt -f -t -e trace=process sqlplus / as sysdba
SQL*Plus: Release 11.2.0.1.0 Production on Tue Mar 30 00:20:49 2010
Copyright (c) 1982, 2009, Oracle. All rights reserved.
Connected to an idle instance.
SQL> startup
ORACLE instance started.
Total System Global Area 535662592 bytes
Fixed Size 1337720 bytes
Variable Size 335545992 bytes
Database Buffers 192937984 bytes
Redo Buffers 5840896 bytes
Database mounted.
Database opened.
18924 00:20:49 execve("/u01/app/oracle/product/11.2.0/dbhome_1/bin/sqlplus", ["sqlplus", "/", "as", "sysdba"], [/* 40 vars */]) = 0
18924 00:20:49 clone(child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0xb7f81708) = 18925
18925 00:20:49 execve("/u01/app/oracle/product/11.2.0/dbhome_1/bin/oracle", ["oracletest11g2", "(DESCRIPTION=(LOCAL=YES)(ADDRESS"], [/* 41 vars */]) = 0
18925 00:20:51 clone(child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0xae2708) = 18926
18926 00:20:51 execve("/bin/sh", ["/bin/sh", "-c", "/bin/df -k /u01/app/oracle/produ"], [/* 42 vars */]) = 0
18926 00:20:51 execve("/bin/df", ["/bin/df", "-k", "/u01/app/oracle/product/11.2.0/d"], [/* 42 vars */]) = 0
18926 00:20:51 exit_group(0) = ?
18925 00:20:51 waitpid(18926, NULL, 0) = 18926
18925 00:20:51 --- SIGCHLD (Child exited) @ 0 (0) ---
18925 00:20:52 clone(child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0xae2708) = 18927
18927 00:20:52 clone(child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0xae2708) = 18928
18927 00:20:52 exit_group(0) = ?
18925 00:20:52 --- SIGCHLD (Child exited) @ 0 (0) ---
18925 00:20:52 waitpid(18927, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], 0) = 18927
18928 00:20:52 execve("/u01/app/oracle/product/11.2.0/dbhome_1/bin/oracle", ["ora_pmon_test11g2"], [/* 46 vars */]) = 0
18925 00:20:52 clone(child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0xae2708) = 18929
18929 00:20:52 clone(child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0xae2708) = 18930
18929 00:20:52 exit_group(0) = ?
18925 00:20:52 --- SIGCHLD (Child exited) @ 0 (0) ---
18925 00:20:52 waitpid(18929, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], 0) = 18929
18930 00:20:52 execve("/u01/app/oracle/product/11.2.0/dbhome_1/bin/oracle", ["ora_vktm_test11g2"], [/* 46 vars */]) = 0
18930 00:20:52 clone(child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x4b3708) = 18931
... -
Alter database OR alter system?? what is the logic?
Hi,
this is just a general question not related to any particular issue. I seem to be missing the logic behind when we need to use the "alter system ... " statements and when we need to use the "alter database ..." statements. Is there a logic I can use to guess ? Or we only need to remember them (or look up for them)?
Let's take an example.
alter database archivelog; & alter system checkpoint;
OR
alter database add logfile; & alter system set undo_retention=800;
If you have a key that can be generally applied please let me know as I am not able to find it. Thank you,
enricoI am not sure if there is a general rule but this is what I use:
alter database is about modifying the database architecture, like data files, archived log files etc.
alter system is about modifying the instance. so, you are modifying the way oracle runs. Remember that all parameters should be done with alter system (like undo_retention)
hope this will help you. -
Alter system and Alter database
Hi all,
Can U please tell me the difference between alter system and alter database.
Thanks in advance...From SQL Reference
Use the ALTER SYSTEM statement to dynamically alter your Oracle Database instance. The settings stay in effect as long as the database is mounted.
Use the ALTER DATABASE statement to modify, maintain, or recover an existing database.
instance => the processes using the database files
database =>database files -
hii, i am very much confused when to use alter system cmd and when to use alter database... plz suggest me how to deal vth that
Ogan Ozdogan wrote:
Here are the documentations;
http://download.oracle.com/docs/cd/B19306_01/server.102/b14200/statements_2013.htm#SQLRF00902
http://download.oracle.com/docs/cd/B19306_01/server.102/b14200/statements_1004.htm#SQLRF00802
OganDear Ogan, I've already posted them above :) -
Question about ALTER SYSTEM ARCHIVE LOG START
Good morning,
I'm trying (unsuccessfully) to get my database to be in archive log mode.
These are the steps I followed:
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup mount;
ORACLE instance started.
Total System Global Area 535662592 bytes
Fixed Size 1375792 bytes
Variable Size 377487824 bytes
Database Buffers 150994944 bytes
Redo Buffers 5804032 bytes
Database mounted.
SQL> select log_mode from v$database;
LOG_MODE
ARCHIVELOG
SQL> show parameter log_archive_start;
NAME TYPE VALUE
log_archive_start boolean FALSE
SQL> alter system archive log start;
System altered.
SQL> show parameter log_archive_start;
NAME TYPE VALUE
log_archive_start boolean FALSE
SQL>I've gone thru that process twice but, I don't seem to be able to get the ARCH process to start. (newbie mistake I'm sure...)
Thank you for your help (again!),
John.The parameter log_archive_start is no more needed John (as suggested already) and the best way to check the archive options is through the archive log list command.
[oracle@edhdr2p0-orcl oui]$ sqlplus / as sysdba
SQL*Plus: Release 11.2.0.1.0 Production on Tue Aug 10 10:51:57 2010
Copyright (c) 1982, 2009, Oracle. All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
With the Partitioning, Automatic Storage Management, OLAP, Data Mining
and Real Application Testing options
SQL> archive log list
Database log mode No Archive Mode
Automatic archival Disabled
Archive destination USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence 11
Current log sequence 13
SQL> shut immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup mount
ORACLE instance started.
Total System Global Area 418484224 bytes
Fixed Size 1336932 bytes
Variable Size 318769564 bytes
Database Buffers 92274688 bytes
Redo Buffers 6103040 bytes
Database mounted.
SQL> select process,status from V$archive_processes;
PROCESS STATUS
0 STOPPED
1 STOPPED
2 STOPPED
3 STOPPED
4 STOPPED
5 STOPPED
6 STOPPED
7 STOPPED
8 STOPPED
9 STOPPED
10 STOPPED
PROCESS STATUS
11 STOPPED
12 STOPPED
13 STOPPED
14 STOPPED
15 STOPPED
16 STOPPED
17 STOPPED
18 STOPPED
19 STOPPED
20 STOPPED
21 STOPPED
PROCESS STATUS
22 STOPPED
23 STOPPED
24 STOPPED
25 STOPPED
26 STOPPED
27 STOPPED
28 STOPPED
29 STOPPED
30 rows selected.
SQL>
SQL> alter database archivelog;
Database altered.
SQL> alter database open;
archive log list;
Database altered.
SQL> Database log mode Archive Mode
Automatic archival Enabled
Archive destination USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence 11
Next log sequence to archive 13
Current log sequence 13
SQL>
SQL> select * from V$archive_processes where status <> 'STOPPED';
PROCESS STATUS LOG_SEQUENCE STAT
0 ACTIVE 0 IDLE
1 ACTIVE 0 IDLE
2 ACTIVE 0 IDLE
3 ACTIVE 0 IDLEHTH
Aman.... -
Question on alter system set cluster_database = true
11.2.0.2.0 windows 2008
doing a restore to a development RAC I noticed the following. I took the database out of cluster mode on one instance
alter system set cluster_database=false scope=spfile sid='PRD1';
shutdown, start up, do the restore, all good, I go to set cluster_Database=true but had issue instance would only start on one node, I reviewed my notes and found problem was when I set cluster_Database back to true I had typed
alter system set cluster_database=true scope=spfile sid='*';
instead of
alter system set cluster_database=true scope=spfile sid='PRD1';
So issue fixed.
I retested and confirmed '*' wont take. Ive seen many examples of '*' working online and I am sure I have used '*' many times so had just typed it off my head. Anyone explain? probably quotes or something.Any chance there are multiple lines for cluster_database in the spfile ?I had thought maybe this, but confirmed no, it was a fresh build anyway that I was restoring to.
>
- Dump the spfile to a pfile ... edit ... recreate the spfile on all nodes.
>
Im not sure what this will achieve? the spfile is shared on the ASM.
>
As the cluster_database=true is a parameter to enable the RAC configuration. As you typed sid='*' it will try to enable the cluster_database parameter in all the instances(nodes) as it is RAC.
In your case as you did on a single node by specifiying the sid name it will work as it will look only for that sid and enable that particular node.
>
I find this hard to read but I think this misinterprets as well.
Thanks for the contribution. I think Ive found the solution
the asterisk doesnt apparently mean actually "all instances", from here
http://www.comp.dit.ie/btierney/oracle11gdoc/rac.111/b28254/admin.htm#BCEFICEE
and
"Setting SPFILE Parameter Values for Oracle Real Application Clusters"
-- this is a good example of what happened to me
>
*.OPEN_CURSORS=500
prod1.OPEN_CURSORS=1000
Note:
The value before the dot in an SPFILE entry identifies the instance to which the particular parameter value belongs. When an asterisk precedes the dot, the value is applied to all instances that do not have a subsequent, individual value listed in the SPFILE.
For the instance with the Oracle system identifier (SID) prod1, the OPEN_CURSORS parameter is set to 1000 even though it has a database-wide setting of 500. Parameter file entries that have the asterisk (*) wildcard character only affect the instances without an instance-specific entry. This gives you control over parameter settings for instance prod1. These two types of settings can appear in any order in the parameter file.
If another DBA runs the following statement, then Oracle updates the setting on all instances except the instance with SID prod1:
ALTER SYSTEM SET OPEN_CURSORS=1500 sid='*' SCOPE=MEMORY;
>
so when I was on node 1 and ran it for *, I was setting it for all the nodes except the node I was on which holds true from what Ive seen. I'll remember that one. -
Alter system set nls_length_semantics
Hi all,
my question concerns the scope in the change of NLS_LENGTH_SEMANTICS can be performed.
The 10gR2 documentation only the
"Modifiable ALTER SESSION"
But what about altering the system and making your own setting to default for all sessions? With which scope?
I tried
alter system set nls_length_semantics='CHAR';
alter system set nls_length_semantics='CHAR' scope=spfile;
alter system set nls_length_semantics='CHAR' scope=both;
None had really any effect. Do I have to bounce the database?Hello,
Do I have to bounce the database?Yes, you have to shutdown and startup the database.
Else the NLS_LENGTH_SEMANTICS change won't be effective.
You may have more details on the following thread:
nls_database_parameters->nls_length_semantics Help!
There's also an interesting Note from MOS:
Examples and limits of BYTE and CHAR semantics usage (NLS_LENGTH_SEMANTICS) [ID 144808.1]They give many information about NLS_LENGTH_SEMANTICS and the following Bug:
Bug 1488174
Problem: ALTER SYSTEM does not change the setting of NLS_LENGTH_SEMANTICS for the current and new (!) sessions.
Workaround: Don't use ALTER SYSTEM SET NLS_LENGTH_SEMANTICS scope=both; but set NLS_LENGTH_SEMANTICS as a init.ora parameter or issue ALTER SYSTEM SET NLS_LENGTH_SEMANTICS=CHAR scope=spfile; and bounce the database.Hope this help.
Best regards,
Jean-Valentin
Edited by: Lubiez Jean-Valentin on May 27, 2010 2:06 PM -
Hi,
I was under impression that
"PFILE has the limitation to change the initialization parameters dynamically.If any init parameter is to be changed,we can edit the pfile and the parameter changes will come into effect with the next reboot of the system.
To overcome this limitation,Oracle has come up with the concept of SPFILE ,where in the initialization parameters can be changed dynamically using ALTER SYSTEM SET statement."
But,today I started my test database using PFILE and executed the following command to change the memory_target parameter from 300M to 290M.
ALTER SYSTEM SET memory_target=290M;
And to my surprise,this statement executed fine without any errors and memory_target parameter has been set to the new value(of course,in memory).
Isn't it changing the init parameters dynamically using PFILE itself??
Please clarify my doubt and correct my understanding.
Regards,
BharathbharathDBA wrote:
Hi,
I was under impression that
"PFILE has the limitation to change the initialization parameters dynamically.If any init parameter is to be changed,we can edit the pfile and the parameter changes will come into effect with the next reboot of the system.
To overcome this limitation,Oracle has come up with the concept of SPFILE ,where in the initialization parameters can be changed dynamically using ALTER SYSTEM SET statement."
But,today I started my test database using PFILE and executed the following command to change the memory_target parameter from 300M to 290M.
ALTER SYSTEM SET memory_target=290M;
And to my surprise,this statement executed fine without any errors and memory_target parameter has been set to the new value(of course,in memory).
Isn't it changing the init parameters dynamically using PFILE itself??
Please clarify my doubt and correct my understanding.
Regards,
Bharath
You have a wrong interpenetration about the genesis of the SPFILE. Yes it is a binary file and all that but remember, its not the SPFILE that makes a parameter dynamic or a PFILE that makes it static but it's the very nature of the parameter itself that makes it happen. Yes, the difference in the PFILE and SPFILE parameter would be evident when you would change a dynamic parameter and would give a bounce to the db. Since teh PFILE wasn't updated (its a text file so has to be updated manually) , with the next restart, the parameter would take the same value as it has in the PFILE. But with the SPFILE, depending on what you have set in the SCOPE, the parameter would behave accordingly.
HTH
Aman.... -
Kill session permission without alter system permission?
Syntax to kill session is
ALTER SYSTEM KILL SESSION 'session info';
Is there a way to allow a user to kill his/her own session without granting rights to SYSTEM? I don't want anyone to be able to drop the database, but they need to be able to kill their own session. I've looked everywhere...
Thanks in advance!Yes, assuming you are using standard definer's rights stored procedures. Only if you specify AUTHID CURRENT_USER when creating the stored procedure will you get an invoker's rights stored procedure, which would run with the privileges of the caller, not of the definer.
Justin -
Alter system set shared_pool_size extremely slow.
I am trying to increase my shared_pool_size from 60m to 200m by simply typing alter system set shared_pool_size=200m;
I did alter system flush shared_pool; before to clear out the current shared_pool.
I'm on 9i and my SGA_MAX_SIZE is 3g and I have plenty room to grow.
show sga
Total System Global Area 3222769016 bytes
Fixed Size 744824 bytes
Variable Size 2382364672 bytes
Database Buffers 838860800 bytes
Redo Buffers 798720 bytes
My event in v$session_wait is background parameter adjustment.
Any help would be appreciated. I know that I can bounce the server and let it read it from the init.ora. However, I'm trying to fix some current 4031s in my shared pool. The flush did fix them temporarily.Are you sure your instance was in the state you thought it was ? This is what you reported from show sga:
Total System Global Area 3222769016 bytes
Fixed Size 744824 bytes
Variable Size 2382364672 bytes
Database Buffers 838860800 bytes
Redo Buffers 798720 bytesYou say your shared_pool_size is 60M and you want to grow it to 200M, but the Variable Size in the output above suggests that your shared pool had already grown to about 2.3 GB, so your command would have been trying to shrink it quite dramatically. (And 9i isn't very good at shrinking the shared pool because of the problems of pinned and "KEEP"ed objects in the library cache.
Things to check (from another session):
v$sga_current_resize_ops to see if your resize operation is still running, and what it's trying to do.
v$sga_resize_ops to see i f your resize operation completed some time ago - leaving your session stuck somewhere else. (There's a convenient query I wrote against this view published here: http://jonathanlewis.wordpress.com/2007/04/16/sga-resizing/ )
v$session_wait (for the resize session) to see if the session is waiting or working
v$sesstat (for the resize session) to see if it gives you any clues about current activity
Regards
Jonathan Lewis
http://jonathanlewis.wordpress.com
http://www.jlcomp.demon.co.uk -
ALTER SYSTEM DUMP DATAFILE in 10g
Hi all,
When I refered to the the documentation "Oracle Database SQL Reference 10g Release 2 (10.2)"
to obtain information about the command "ALTER SYSTEM DUMP DATAFILE", I did not see it there.
Is it obsolete?
http://download-uk.oracle.com/docs/cd/B19306_01/server.102/b14200/statements_2013.htm#i2053602
Actually, when I tested it, I did not see any trace file generated.
Any guideline is appreciated.Which OS are you on?
However, ALTER SYSTEM DUMP DATAFILE commands works with 10g, no issues.
Do the following:
ALTER SESSION SET TRACEFILE_IDENTIFIER = 'DUMPFILE';
ALTER SYSDATE DUMP DATAFILE 'FILE.DBF' BLOCK 1;
and now look into your dump you will have file name with prefix as DUMPFILE.
Jaffar -
Alter system set control_files
when we use this command to multiplex the control files
should we list all the current controls files as well the copied once If yes ,should i performe alter database backup controlfile to trace command ?
Thanks in AdvanceIf you are working in Oracle8i you can not apply that exact command. That exact command is applicable from Oracle9i. I clarify: The comand ALTER SYSTEM SET ... exists prior to 9i but in 8i that parameter is not dinamic. In order to modify that parameter you have to do so:
1.- Realize what controlfiles you have
2.- Apply the command with the controlfiles that you have additioning the new controlfiles to duplicate. You have to apply this command with SCOPE=SPFILE;
3.- Shutdown the database
4.- Copy the controlfiles with OS
5.- Start the database
Joel Pérez
http://otn.oracle.com/experts -
ALTER SYSTEM SET SGA_TARGET
Hi,
in 10g R2 should I stop/start database when I change sGA_TARGET :
ALTER SYSTEM SET SGA_TARGET=value [SCOPE={SPFILE|MEMORY|BOTH}]
Thank you.user522961 wrote:
OK.
When I query V$PARAMETER I have the OLD value for SGA_TARGET. It is normal because the value in V$PARAMETER comes from starting and spfile. How can I be sur that now oRACLE uses the new value for SGA_TARGET effectively ?
Thanks again.Not sure I understand your question. If you set SGA_TARGET with SCOPE=MEMORY or BOTH, it should be in effect immediately.
SQL> alter system set sga_target=253M scope=both;
System altered.
SQL> select value bytes, value/1048576 MB from v$parameter where name = 'sga_target';
BYTES MB
268435456 256
SQL> show parameter sga
NAME TYPE VALUE
lock_sga boolean FALSE
pre_page_sga boolean FALSE
sga_max_size big integer 512M
sga_target big integer 256M
SQL> alter system set sga_target=257M scope=both;
System altered.
SQL> select value bytes, value/1048576 MB from v$parameter where name = 'sga_target';
BYTES MB
272629760 260
SQL> show parameter sga
NAME TYPE VALUE
lock_sga boolean FALSE
pre_page_sga boolean FALSE
sga_max_size big integer 512M
sga_target big integer 260M
SQL>
Maybe you are looking for
-
Problem about using GOS to store business document!
Hi Everyone, I am using Generic Object services toolbar to archive document. When I attach thru Create Attachment button and display by clicking on the attachments list, it is showing Creator name and the real name of document .But If I attach
-
Card reader works on 17 inch PowerBook but not on 12 inch
I have a Compact Flash Card reader (Zio!) that works on my 17 inch PowerBook, but on my 12 inch it does not show up on the desktop when a card is inserted. I have another card reader (Belkin) that works on the 12 inch but it is twice as large and use
-
An ftp error occurred cannot make connection to host DW CS4
OK... I just recently installed Dreamweaver CS4. I am trying to connect to a clients site and I keep on getting the following error: an ftp error occurred cannot make connection to host. the remote host cannot be found A couple of days when I was in
-
Hi, there is someone could post me the code of the program /SMB40/FM06P (print program for best-practice smartforms Request Order) ? I have lost the source of the code during the upgrade from ECC 5.0 to ECC 6.0. (the version of the ECC 5.0). Thanks F
-
Grant on table with Nested Column.
Hi, I looked for an answer to this issue, but I couldn't find it. So, here it is. I am trying to grant select on a table with nested column to a different user and still the select won't work. Here is an example. FIRST_USER@TST > create type test_obj