各位大牛,小弟最近在一个服务器上手工搭建一个数据库实例,在创建initxxx.ora时MEMORY_TARGET,SGA_TARGET等SGA设置时有很多困惑,比较混乱,总是设置了然后startup时报ORA-00845或者ORA-00838等各种错,由于里面还有几个实例是生产的,所以不敢乱动了,再这想问问各位init里面的那些设置有没有什么原则可遵循还是要设为自动,是11g的。有这方面的经验给我介绍哈。
@ctudb etl]$ df -h | grep shm
tmpfs                  24G   15G  8.6G  64% /dev/shm@ctudb etl]$ free -m
             total       used       free     shared    buffers     cached
Mem:         48248      47962        286          0        157      44780
-/+ buffers/cache:       3024      45224
Swap:        20479       2848      17631

解决方案 »

  1.   

    兄弟,不要在生产库上搞这些东西啊如果是为了测试,建议另找机器。
    如果是以后确实要应用于生产库的,并且只有这一台服务器,建议创建新的用户而不是新的数据库。你可以使用dbca建库,里面会有建议的。10g和11g可以设置总共使用多少内存,然后让数据库自己分配
      

  2.   

    11G有主动管理内存的能力,只要设一下memory_max_target,memory_target一般这两个参数设为一样大记住(scope=spfile),还有就是把SGA和PGA的值设为0让数据库制动管理。
    注:切记memory_target不能比memory_max_target小太多不然在重启是会报错。