zoukankan      html  css  js  c++  java
  • 手动创建数据库实例全攻略4:参数文件

    一、参数文件说明
    1、参数文件作用。
    在前期的数据库知识探索实验中,我们经常使用这个参数。
    http://www.cnblogs.com/alexy/p/createdb1.html
    http://www.cnblogs.com/alexy/p/createdb2.html
    http://www.cnblogs.com/alexy/p/createdb3.html
    在启动过程中,我们看到告警日志中的各种配置参数,截取如下:

    SQL> show parameter background_dump
    NAME TYPE VALUE
    ------------------------------------ ----------- ------------------------------
    background_dump_dest     string     /opt/oracle/admin/ocm/bdump
    SQL>

    启动日志中记录的参数读取和写入过程如下:

    [oracle@ocmserver bdump]$ more alert_ocm.log 
    Mon Jul 1 22:23:18 2013
    Starting ORACLE instance (normal) -----可以看出来是正常启动,normal一般是没有带参数。
    LICENSE_MAX_SESSION = 0 ----如下开始读参数文件,控制文件内的相关信息
    LICENSE_SESSIONS_WARNING = 0
    Picked latch-free SCN scheme 2
    Using LOG_ARCHIVE_DEST_10 parameter default value as USE_DB_RECOVERY_FILE_DEST
    Autotune of undo retention is turned on. 
    IMODE=BR
    ILAT =18
    LICENSE_MAX_USERS = 0
    SYS auditing is disabled
    ksdpec: called for event 13740 prior to event group initialization
    Starting up ORACLE RDBMS Version: 10.2.0.1.0.
    System parameters with non-default values:
    processes = 150
    __shared_pool_size = 62914560
    __large_pool_size = 4194304
    __java_pool_size = 4194304
    __streams_pool_size = 0
    sga_target = 218103808
    control_files = /opt/oracle/oradata/ocm/control01.ctl, /opt/oracle/oradata/ocm/control02.ctl, /opt/oracle/oradata/ocm/control03.ctl
    db_block_size = 8192
    __db_cache_size = 142606336
    compatible = 10.2.0.1.0
    db_file_multiblock_read_count= 16
    db_recovery_file_dest = /opt/oracle/flash_recovery_area
    db_recovery_file_dest_size= 2147483648
    undo_management = AUTO
    undo_tablespace = UNDOTBS1
    remote_login_passwordfile= EXCLUSIVE
    db_domain = 
    dispatchers = (PROTOCOL=TCP) (SERVICE=ocmXDB)
    job_queue_processes = 10
    background_dump_dest = /opt/oracle/admin/ocm/bdump
    user_dump_dest = /opt/oracle/admin/ocm/udump
    core_dump_dest = /opt/oracle/admin/ocm/cdump
    audit_file_dest = /opt/oracle/admin/ocm/adump
    db_name = ocm
    open_cursors = 300
    pga_aggregate_target = 71303168
    PMON started with pid=2, OS id=5838 -----开始启动后台进程。
    PSP0 started with pid=3, OS id=5840
    MMAN started with pid=4, OS id=5842
    DBW0 started with pid=5, OS id=5844
    LGWR started with pid=6, OS id=5846
    CKPT started with pid=7, OS id=5848
    SMON started with pid=8, OS id=5850
    RECO started with pid=9, OS id=5852
    CJQ0 started with pid=10, OS id=5854
    MMON started with pid=11, OS id=5856
    Mon Jul 1 22:23:19 2013
    starting up 1 dispatcher(s) for network address '(ADDRESS=(PARTIAL=YES)(PROTOCOL=TCP))'...
    MMNL started with pid=12, OS id=5858
    Mon Jul 1 22:23:19 2013
    starting up 1 shared server(s) ...
    Mon Jul 1 22:23:19 2013
    ALTER DATABASE MOUNT -----启动到mount状态;
    Mon Jul 1 22:23:23 2013
    Setting recovery target incarnation to 2
    Mon Jul 1 22:23:23 2013
    Successful mount of redo thread 1, with mount id 2202287127 ----挂载redo成功;
    Mon Jul 1 22:23:23 2013
    Database mounted in Exclusive Mode -----数据库挂载为排他模式;
    Completed: ALTER DATABASE MOUNT
    Mon Jul 1 22:23:24 2013 
    ALTER DATABASE OPEN -----打开数据库
    Mon Jul 1 22:23:24 2013
    Thread 1 opened at log sequence 2
    Current log# 1 seq# 2 mem# 0: /opt/oracle/oradata/ocm/redo01.log
    Successful open of redo thread 1
    Mon Jul 1 22:23:24 2013
    MTTR advisory is disabled because FAST_START_MTTR_TARGET is not set
    Mon Jul 1 22:23:24 2013
    SMON: enabling cache recovery
    Mon Jul 1 22:23:24 2013
    Successfully onlined Undo Tablespace 1. -----undo表空间online成功;
    Mon Jul 1 22:23:24 2013
    SMON: enabling tx recovery
    Mon Jul 1 22:23:24 2013
    Database Characterset is AL32UTF8
    replication_dependency_tracking turned off (no async multimaster replication found)
    Starting background process QMNC
    QMNC started with pid=16, OS id=5866
    Mon Jul 1 22:23:25 2013
    db_recovery_file_dest_size of 2048 MB is 0.00% used. This is a
    user-specified limit on the amount of space that will be used by this
    database for recovery-related files, and does not reflect the amount of
    space available in the underlying filesystem or ASM diskgroup.
    Mon Jul 1 22:23:27 2013
    Completed: ALTER DATABASE OPEN -----启动完成;
    [oracle@ocmserver bdump]$

    2、参数文件分类
    个人觉得参数文件分为3类(ORACLE官方文档是分了2类)

    • 默认pfile ----系统默认的文本文件,文件名格式为init.ora。
    • pfile ----可编辑的文本文件,文件名格式为init<sid>.ora
    • spfile ----不可手动编辑的二进制文件,文件名格式为spfile<sid>.ora,支持RMAN备份。

      这三者之间可以相互转化,特别是当参数文件异常中断,需要从alert_sid.log里面拼凑出默认的pfile,再修改为init<sid>.ora,最后使用命令转化为spfile<sid>.ora。这样的情况极少出现,只是一种思路和方法。转化命令和过程大体如下:

    • 1)spfile转化为pfile

    create pfile from spfile
    create pfile form spfile='/opt/oracle/product/dbs/spfileocm.ora';
    create pfile='/opt/oracle/product/dbs/initocm.ora' from spfile='/opt/oracle/product/dbs/spfileocm.ora';

    • 2)pfile转化为spfile

    create spfile from pfile;
    create spfile from pfile='/opt/oracle/product/dbs/initocm.ora';
    create spfile='/opt/oracle/product/dbs/spfileocm.ora' from pfile='/opt/oracle/product/dbs/initocm.ora';

    • 3)spfile特性

    create spfile from memory;

    3、参数文件读取顺序
    通常读取顺序为spfile<sid>.ora --->spfile.ora --->init<sid>.ora(没有办法情况下把init.ora修改为适当的init<sid>.ora)
    这三个文件一般存放在$ORACLE_HOME/product/dbs下。

    startup的时候可以指定pfile

    startup pfile='/opt/oracle/product/dbs/initocm.ora';

    但是spfile不可以

    startup spfile='/opt/oracle/product/dbs/spfileocm.ora';

    4、参数文件修改
    4.1 pfile修改
    pfile为文本文件,可以直接vi修改,但需要重启instance;

    4.2 spfile修改
    spfile修改提供如下指令:

    Alter system set parameter=value
    <scope = memory|spfile|both>
    <deferred>
    <comment = 'text'>
    <sid = 'sid|*'>
    解释如下:
    <scope = memory|spfile|both>:
    Memory:修改只对内存有效,即只对当前实例有效,且立即生效,但不会保存到SPFILE, 数据库重启后此配置丢失;
    Spfile:修改只对SPFILE有效,不影响当前实例,需要重启数据库才能生效r;
    both: 包含以上两种,立即生效,且永久生效(缺省)。
    <deferred>:
    语句执行后暂时先不做修改,等该用户再次登录DB时,此参数修改生效。
    <comment = 'text'>:
    为修改的参数添加注释。
    <sid = 'sid|*'>:
     常用于多实例对应一个DB的情况,不同的SID分别指定不同的实例。若是sid = SID,那么此参数只适用于SID对应的实例;若是sid = *,则此参数适用于所有实例。

    4.3 spfile和pfile的差异
    如下图,可以看出spfile与pfile的差异来

    5、参数文件常用视图和表
    v$parameter ----和show parameter abc 效果同。
    v$instance
    x$ksppi
    x$ksppcv

    6、常用参数及说明

    CIRCUITS
    参数类型:整型
    默认值:如果是共享服务器架构,其值为会话数;如果非共享服务器架构,则值为0
    参数类别:静态
    CIRCUITS用于指定在MTS服务器架构下的虚电路的总数。
     
    CONTROL_FILES
    参数类型:字符串
    语法:CONTROL_FILES = 文件名[,文件名[,...]]
    参数类别:静态
    取值范围:1至8个文件名
    实时应用集群:多个实例必须有相同的设置。
    CONTROL_FILES用来指定数据库的参数文件。参数值里指定的多个文件是镜像关系。
     
    CURSOR_SHARING
    参数类型:字符串
    语法:CURSOR_SHARING = {SIMILAR|EXACT|FORCE}
    默认值:EXACT
    参数类别:动态:ALTER SESSION,ALTER SYSTEM
    CURSOR_SHARING用来指定SQL语句如何共享游标。值如下:
    FORCE:如果SQL表述只是字面上的不一样,而效果是一样的,则共享游标;
    SIMILAR:如果SQL表述只是字面上的不一样,效果和查询计划的维度都一样,则共享游标。这比FORCE我了一个限制:查询计划的维度;
    EXACT:仅当SQL表述在字面上完全相同时才共享游标。
     
    DB_ nK_CACHE_SIZE
    DB_BLOCK_BUFFERS
    DB_BLOCK_SIZE
    DB_CACHE_SIZE
    JAVA_POOL_SIZE
    LOG_BUGGER
    shared_pool_size
    sort_area_size
    large_pool_size
    statistics_level
    SGA_TARGET
    以上几个参数是关于内存数据块的设置。
    
    DB_DOMAIN
    DB_NAME
    ORACLE_SID
    INSTANCE_NAME
     
    DB_FILES
    参数类型:整型
    默认值:200
    参数类别:静态
    实时应用集群:必须为每一个实例设置这个值,且值必须相等。
    DB_FILES用来设置数据库文件个数的最大值。
     
    DB_WRITER_PROCESSES
    参数类型:整型
    默认值:1
    参数类别:静态
    取值范围:1至20
    DB_WRITER_PROCESSES用来设置数据库写进程的个数。
     
    DISPATCHERS
    参数类型:字符串
    语法:DISPATCHERS = 'dispatch_clause'
    dispatch_cluse::=
    (PROTOCOL = protocol)|(ADDRESS = address)|(DESCRIPTION = description)[option_clause]
    options_clause::=
    (DISPATCHERS = integer|SESSIONS= integer|CONNECTIONS = integer|TICKS = second|POOL = {1|ON|YES|TRUE|BOTH|({IN|OUT}=ticks)|0|OFF|NO|FALSE|ticks}|MULTIPLEX = {1|ON|YES|TRUE|0|OFF|NO|FALSE|BOTH|IN|OUT}|LISTENER=tnsname|SERVICE=service|INDEX=integer)
    参数类别:动态:ALTER SYSTEM
    DISPATCHERS用来配置在共享服务器架构下的dispatcher进程。
    
    FIXED_DATE
    参数类型:字符串
    语法:FIXED_DATE=yyyy-mm-dd-hh24-mi-ss(或者是一个oracle默认格式的日期时间值)
    参数类别:动态:ALTER SYSTEM
    FIXED_DATE 用来设置SYSDATE的值,使固化或动态变化,如:alter system set fixed_date='2006-01-01',则第次查询select sysdate from dual的结果都是2006-01-01,若要将其设回当前时间:alter system set fixed_date=none。
     
    IFILE
    参数类型:参数文件
    语法:IFILE=参数文件名
    参数类别:静态
    实时应用集群:不同的实例可以有不同的设定值
    IFILE用来指出一个另一个链接的参数文件,这个链接的参数文件也是参数文件。我觉得使用这个参数的好处是可以将参数以不同的分类放在多个参数文件中,如:
    IFILE=COMMON.ORA
    IFILE=DBPARAMS.ORA
    IFILE=MEMPARAMS.ORA
     
    LICENSE_MAX_SESSIONS
    参数类型:整型
    默认值:0
    参数类别:动态:ALTER SYSTEM
    实时应用集群:不同的实例可以有不同的设置值,但总数须小于等于数据库的total number of sessions licensed。
    LICENSE_MAX_SESSIONS用于设置实例的最大许可用户会话数,如果会话数达到这个值,则只允许有RESTRICTED
    SESSION权限的用户才能连接到数据库。
     
    LICENSE_MAX_USERS
    参数类型:整型
    默认值:0
    Real Application Clusters:Multiple instances should have the same values. If different instances specify different values for this parameter, then the value of the first instance to mount the database takes precedence.
    LICENSE_MAX_USERS设置数据库的最大用户数,当实际用户数达到这个限额,将不能再创建用户。
     
    LOCK_SGA
    参数类型:布尔
    默认值:false
    参数类别:静态
    取值范围:false|true
    LOCK_SGA用来设定是否SGA只使用物理内存。若值为true,则只使用物理内存,若值为false,则可以允许使用操作系统的虚拟内存(虚拟内存是操作系统利用磁盘空间来当成内存使用的一种技术)。
     
    LOG_ARCHIVE_DEST
    LOG_ARCHIVE_DEST_ n
    LOG_ARCHIVE_DEST_STATE_ n
    LOG_ARCHIVE_DUPLEX_DEST
    LOG_ARCHIVE_FORMAT
    LOG_ARCHIVE_MAX_PROCESSES
    LOG_ARCHIVE_MIN_SUCCEED_DEST
    LOG_ARCHIVE_START
    LOG_ARCHIVE_TRACE
    以上这几个参数是关于归档日志的相关设置,这些参数很重要。
     
    LOG_CHECKPOINT_INTERVAL
    LOG_CHECKPOINT_TIMEOUT
    以上两个参数是关于检查点的。
     
    LOG_CHECKPOINTS_TO_ALERT
    参数类型:布尔
    默认值:false
    LOG_CHECKPOINTS_TO_ALERT用于设定是否将检查点日志写入警报文件(alert file)中。
     
    MAX_DISPATCHERS
    参数类型:整型
    默认值:5
    参数类别:静态
    MAX_DISPATCHERS用于在共享服务器架构中,设定DISPATCHER(分配器)的最大数。
     
    MAX_DUMP_FILE_SIZE
    参数类型:字符串
    语法:MAX_DUMP_FILE_SIZE={integer [K|M]}
    默认值:UNLIMITED
    参数类别:动态:ALTER SYSTEM,ALTER SESSION
    取值范围:0至UNLIMITED
    MAX_DUMP_FILE_SIZE用来设置轨迹文件的最大文件大小。
     
    MAX_ENABLED_ROLES
    参数类型:整型
    默认值:20
    参数类别:静态
    MAX_ENABLED_ROLES用于设定一个用户可以同时可最多拥有多少个生效的角色。而实际上一个用户所拥有的有效色是2+MAX_ENABLED_ROLES,因为每个用户都默认拥有两个生效的角色,一个是public,一个是用户特有的角色。
     
    MAX_ROLLBACK_SEGMENTS
    参数类型:整型
    默认值:MAX(30, TRANSACTIONS/TRANSACTIONS_PER_ROLLBACK_SEGMENT)
    参数类别:静态
    取值范围:2至65535
    MAX_ROLLBACK_SEGMENTS用来设定SGA中最大回滚段的最大值。
     
    MAX_SHARED_SERVERS
    参数类型:整型
    参数类别:静态
    MAX_SHARED_SERVERS用于设定在共享服务器架构中的最大共享服务器数量。
     
    OPEN_CURSORS
    参数类型:整型
    默认值:50
    参数类别:动态:ALTER SYSTEM
    取值范围:1至4294967295
    OPEN_CURSORS用于设定一个会话最多可以同时打开多少个游标。
     
    PROCESSES
    参数类型:整型
    参数类别:静态
    PROCESSES用于设置总的实例的进程数限额,包括服务器进程,以及后台进程、任务进程等。
     
    REMOTE_LOGIN_PASSWORDFILE
    参数类型:字符串
    语法:REMOTE_LOGIN_PASSWORDFILE={NONE|SHARED|EXCLUSIVE}
    参数类别:静态
    此参数用于设置密码文件的验证方式。
     
    SESSIONS
    参数类型:整型
    默认值:(1.1 * PROCESSES) + 5
    参数类别:静态
    SESSIONS用于设定系统可创建的最大会话数。
    
    SGA_MAX_SIZE
    参数类型:大整型
    语法:SGA_MAX_SIZE = integer [K | M | G]
    参数类别:静态
    SGA_MAX_SIZE用于设置实例的SGA的大小。

    二、参数文件实验说明

    To be continue……

    三、小结

    1、参数文件在前面所有实验都非常重要,一般不会出问题,如果出现问题可以去参考alert_ocm.log里面去找讯息重建(发现所有问题重建都可以好,controlfile最终办法也是重建控制文件能解决很多问题?)

    2、参数文件修改参数会越来越少.ORACLE11g中,oracle有了自己的调优策略。在oracle 12c中恐怕会更加优化和方便,基本不需要人工干预和调整了,但理解知识无关乎他是否使用,对后续调优及其他方面有很大的方便。

    3、参数文件内容不多,应该重点理解。

    四、参考文档
    1、官方文档
    2、minbear的blog:http://www.cnblogs.com/minbear/archive/2006/10/12/526853.html
    怕丢失,保存在空间如下:

    前言
    
    近来公司技术,研发都在问我关于内存参数如何设置可以优化oracle的性能,所以抽时间整理了这篇文档,以做参考.
    
    目的
    
    希望通过整理此文档,使大家对oracle内存结构有一个全面的了解,并在实际的工作中灵活应用,使oracle的内存性能达到最优配置,提升应用程序反应速度,并进行合理的内存使用.
    
    内容
    
    实例结构
    
    oracle实例=内存结构+进程结构
    
    oracle实例启动的过程,其实就是oracle内存参数设置的值加载到内存中,并启动相应的后台进程进行相关的服务过程。
    
    进程结构
    
    oracle进程=服务器进程+用户进程
    
    几个重要的后台进程:
    
    DBWR:数据写入进程.
    
    LGWR:日志写入进程.
    
    ARCH:归档进程.
    
    CKPT:检查点进程(日志切换;上一个检查点之后,又超过了指定的时间;预定义的日志块写入磁盘;例程关闭,DBA强制产生,表空间offline)
    
    LCKn(0-9):封锁进程.
    
    Dnnn:调度进程.
    
    内存结构(我们重点讲解的)
    
    内存结构=SGA(系统全局区)+PGA(程序全局区)
    
    SGA:是用于存储数据库信息的内存区,该信息为数据库进程所共享。它包含Oracle 服务器的数据和控制信息,它是在Oracle服务器所驻留的计算机的实际内存中得以分配,如果实际内存不够再往虚拟内存中写
    
     
    
    我们重点就是设置SGA,理论上SGA可占OS系统物理内存的1/2——1/3
    
    原则:SGA+PGA+OS使用内存<总物理RAM
    
    SGA=((db_block_buffers*blocksize)+(shared_pool_size+large_pool_size+java_pool_size+log_buffers)+1MB
    
    1、SGA系统全局区.(包括以下五个区)
    
    A、数据缓冲区:(db_block_buffers)存储由磁盘数据文件读入的数据。
    
    大小: db_block_buffers*db_block_size
    
             Oracle9i设置数据缓冲区为:Db_cache_size
    
             原则:SGA中主要设置对象,一般为可用内存40%。
    
    B、共享池:(shared_pool_size):数据字典,sql缓冲,pl/sql语法分析.加大可提速度。
    
    原则:SGA中主要设置对象,一般为可用内存10%
    
    C、日志缓冲区:(log_buffer)存储数据库的修改信息.
    
             原则:128K ---- 1M 之间,不应该太大
    
    D 、JAVA池(Java_pool_size)主要用于JAVA语言的开发.
    
             原则:若不使用java,原则上不能小于20M,给30M通常就够了
    E、 大池(Large_pool_size)  如果不设置MTS,主要用于数据库备份恢复管理器RMAN。
    
             原则:若不使用MTS,5---- 10M 之间,不应该太大
    
    SGA=. db_block_buffers*db_block_size+ shared_pool_size+ log_buffer+Java_pool+size+large_pool_size
    
           原则: 达到可用内存的55-58%就可以了.
    
    2、PGA程序全局区
    
    PGA:包含单个服务器进程或单个后台进程的数据和控制信息,与几个进程共享的SGA 正相反PGA 是只被一个进程使用的区域,PGA 在创建进程时分配在终止进程时回收.
    
    A、Sort_area_size 用于排序所占内存
    
    B、Hash_area_size 用于散列联接,位图索引
    
    这两个参数在非MTS下都是属于PGA ,不属于SGA,是为每个session单独分配的,在我们的服务器上除了OS + SGA,一定要考虑这两部分
    原则:OS 使用内存+SGA+并发执行进程数*(sort_area_size+hash_ara_size+2M) < 0.7*总内存
    
    实例配置
    
    一:物理内存多大
    
    二:操作系统估计需要使用多少内存
    
    三:数据库是使用文件系统还是裸设备
    
    四:有多少并发连接
    
    五:应用是OLTP 类型还是OLAP 类型
    
    基本掌握的原则是, db_block_buffer 通常可以尽可能的大,shared_pool_size 要适度,log_buffer 通常大到几百K到1M就差不多了
    
         A、如果512M RAM 单个CPU   db_block_size 是8192 bytes
     SGA=0.55*512M=280M左右
    
    建议 shared_pool_size = 50M, db_block_buffer* db_block_size = 200M
    具体: shared_pool_size =52428800 #50M
    
    db_block_buffer=25600      #200M
    
    log_buffer = 131072         # 128k (128K*CPU个数)
    
                 large_pool_size=7864320      #7.5M
    
                 java_pool_size = 20971520    # 20 M
    
                 sort_area_size = 524288      # 512k (65k--2M)
    
                 sort_area_retained_size = 524288   # MTS 时 sort_area_retained_size = sort_area_size
    
    B、如果1G RAM     单个CPU   db_block_size 是8192 bytes
    SGA=0.55*1024M=563M左右
    建议 shared_pool_size = 100M , db_block_buffer* db_block_size = 400M
    具体: shared_pool_size=104857600    #100M
    
              db_block_buffer=51200         #400M
    
     log_buffer = 131072         # 128k (128K*CPU个数)
    
                   large_pool_size=15728640       #15M
    
              java_pool_size = 20971520    # 20 M
    
    sort_area_size = 524288      # 512k (65k--2M)
    
                  sort_area_retained_size = 524288   # MTS 时 sort_area_retained_size = sort_area_size
    
     
    
    C、如果2G     单个CPU   db_block_size 是8192 bytes
    
    SGA=0.55*2048M=1126.4M左右
    建议 shared_pool_size = 200M , db_block_buffer *db_block_size = 800M
    
           具体: shared_pool_size=209715200    #200M
    
              db_block_buffer=103192         #800M
    
     log_buffer = 131072            # 128k (128K*CPU个数)
    
                   large_pool_size= 31457280      #30M
    
              java_pool_size = 20971520      # 20 M
    
    sort_area_size = 524288         # 512k (65k--2M)
    
                  sort_area_retained_size = 524288   # MTS 时 sort_area_retained_size = sort_area_size
    
     
    
     
    
    假定64 bit ORACLE
    
    内存4G
    
    shared_pool_size = 200M , data buffer = 2.5G
    
     
    
    内存8G
    
    shared_pool_size = 300M , data buffer = 5G
    
     
    
    内存 12G
    
    shared_pool_size = 300M-----800M , data buffer = 8G
    
    参数更改方式
    
    oracle8i:
    
    主要都是通过修改oracle启动参数文件进行相关的配置
    
    参数文件位置:
    
    d:oracleadminDB_Namepfileinit.ora
    
    按以上修改以上参数值即可。
    
    Oracle9i:
    
    两种方式:第一种是修改oracle启动参数文件后,通过此参数文件再创建服务器参数文件
    
              第二种是直接运行oracle修改命令进行修改。
    
    SQL>alter system set db_cache_size=200M scope=spfile;
    
    SQL>alter system set shared_pool_size=50M scope=spfile;

    3、Robinson_0612的blog:http://blog.csdn.net/robinson_0612/article/details/5559174

  • 相关阅读:
    从上往下打印二叉树
    栈的压入、弹出序列
    连续子数组的最大和
    链表中环形的入口
    1月项目痛点
    problem:vue组件局部刷新,在组件销毁(destroyed)时取消刷新无效问题
    重点:浏览器的工作原理
    12月中旬项目中出现的几个bug解决方法的思考
    12月中项目问题复盘之对项目进度把控的反思
    problem: vue之数组元素中的数组类型值数据改变却无法在子组件视图更新问题
  • 原文地址:https://www.cnblogs.com/alexy/p/createdb4.html
Copyright © 2011-2022 走看看