Esempio n. 1
0
bool init_db(void)
{
  ib_err_t err;
  /* Initialize the memory sub-system. */
  ib_init();

  /* Call the ib_cfg_*() functions to setup the directory etc. */
  err = ib_cfg_set_bool_off("adaptive_hash_index");
  err = ib_cfg_set_int("additional_mem_pool_size", 16*1024*1024);
  err = ib_cfg_set_int("buffer_pool_size", 1024*1024*1024);
  err = ib_cfg_set_int("flush_log_at_trx_commit", 2);
  err = ib_cfg_set_int("log_buffer_size", 8*1024*1024);
  err = ib_cfg_set_int("log_file_size", 256*1024*1024);
  err = ib_cfg_set_text("data_home_dir", "/data/");
  err = ib_cfg_set_text("log_group_home_dir", "/data/");
  err = ib_cfg_set_text("flush_method", "O_DIRECT");

  /* Create system files if this is the first time
   * or do recovery if starting an existing instance. */
  err = ib_startup("barracuda");
  /* File format "barracuda" supports all
   * the currently available table formats. */

  if (err == DB_SUCCESS) {
    printf("InnoDB started!\n");
  } else {
    printf("Error starting up InnoDB: %s\n", ib_strerror(err));
    return false;
  }
  return true;
}
Esempio n. 2
0
void
test_configure(void)
/*================*/
{
	ib_bool_t	ret;

	create_directory(log_group_home_dir);

#ifndef __WIN__
	ret = ib_cfg_set_text("flush_method", "O_DIRECT");
	assert(ret);
#else
	ret = ib_cfg_set_text("flush_method", "async_unbuffered");
	assert(ret);
#endif

	ret = ib_cfg_set_int("mirrored_log_groups", 2);
	assert(ret);

	ret = ib_cfg_set_int("log_files_in_group", 2);
	assert(ret);

	ret = ib_cfg_set_int("log_file_size", 32 * 1024 * 1024);
	assert(ret);

	ret = ib_cfg_set_int("log_buffer_size", 24 * 16384);
	assert(ret);

	ret = ib_cfg_set_int("buffer_pool_size", 5 * 1024 * 1024);
	assert(ret);

	ret = ib_cfg_set_int("additional_mem_pool_size", 4 * 1024 * 1024);
	assert(ret);

	ret = ib_cfg_set_int("flush_log_at_trx_commit", 0);
	assert(ret);

	ret = ib_cfg_set_int("file_io_threads", 4);
	assert(ret);

	ret = ib_cfg_set_int("lock_wait_timeout", 60);
	assert(ret);

	ret = ib_cfg_set_int("open_files", 300);
	assert(ret);

	ret = ib_cfg_set_bool_on("doublewrite");
	assert(ret);

	ret = ib_cfg_set_bool_on("checksums");
	assert(ret);

	ret = ib_cfg_set_bool_on("rollback_on_timeout");
	assert(ret);

	ret = ib_cfg_set_bool_on("print_verbose_log");
	assert(ret);

	ret = ib_cfg_set_bool_on("file_per_table");
	assert(ret);

	ret = ib_cfg_set_text("data_home_dir", ".");
	assert(ret);

	ret = ib_cfg_set_text("log_group_home_dir", log_group_home_dir);

	if (!ret) {
		fprintf(stderr,
			"syntax error in log_group_home_dir, or a "
			  "wrong number of mirrored log groups\n");
		exit(1);
	}


	ret = ib_cfg_set_text("data_file_path", data_file_path);

	if (!ret) {
		fprintf(stderr,
			"InnoDB: syntax error in data_file_path\n");
		exit(1);
	}
}
Esempio n. 3
0
int main(int argc,char **argv){
    if(argc != 2){
        printf("give me a database\table name\n");
        return 1;
    }
    char *dtname=argv[1];
    
    ib_err_t err;
    err=ib_init();
    if(err != DB_SUCCESS){
        puts(ib_strerror(err));
        return err;
    }
    
    err = ib_cfg_set_int("log_buffer_size", 8*1024*1024);
    if(err != DB_SUCCESS){
        puts(ib_strerror(err));
        return err;
    }
    err = ib_cfg_set_int("force_recovery", 1);
    if(err != DB_SUCCESS){
        puts(ib_strerror(err));
        return err;
    }
    err = ib_cfg_set_int("log_file_size", 128*1024*1024);
    if(err != DB_SUCCESS){
        puts(ib_strerror(err));
        return err;
    }
    err = ib_cfg_set_int("log_files_in_group", 3);
    if(err != DB_SUCCESS){
        puts(ib_strerror(err));
        return err;
    }
    err = ib_cfg_set_text("log_group_home_dir", "./");
    //err = ib_cfg_set_text("log_group_home_dir", "/var/lib/mysql/");
    if(err != DB_SUCCESS){
        puts(ib_strerror(err));
        return err;
    }
    err = ib_cfg_set_text("data_home_dir", "./");
    if(err != DB_SUCCESS){
        puts(ib_strerror(err));
        return err;
    }
    err = ib_cfg_set_text("data_file_path", "ibdata1:500M:autoextend");
    if(err != DB_SUCCESS){
        puts(ib_strerror(err));
        return err;
    }
    err = ib_cfg_set_bool_on("file_per_table");
    if(err != DB_SUCCESS){
        puts(ib_strerror(err));
        return err;
    }

    err=ib_startup("Antelope");
    if(err != DB_SUCCESS){
        puts(ib_strerror(err));
        return err;
    }

    ib_trx_t trx;
    ib_crsr_t crsr;
    trx=ib_trx_begin(IB_TRX_REPEATABLE_READ);
    assert(trx != NULL);
    err=ib_cursor_open_table(dtname,trx,&crsr);
    if(err != DB_SUCCESS){
        puts(ib_strerror(err));
        return err;
    }
    ib_tpl_t tpl;
    tpl=ib_clust_read_tuple_create(crsr);
    assert(tpl != NULL);
    
    err=ib_cursor_first(crsr);
    while(err == DB_SUCCESS){
        err=ib_cursor_read_row(crsr,tpl);
        print_tuple(stdout,tpl);
        err=ib_cursor_next(crsr);
        tpl=ib_tuple_clear(tpl);
    }
    ib_tuple_delete(tpl); 
    err=ib_cursor_close(crsr);
    if(err != DB_SUCCESS){
        puts(ib_strerror(err));
        return err;
    }
    err=ib_trx_commit(trx);
    if(err != DB_SUCCESS){
        puts(ib_strerror(err));
        return err;
    }
    
    err=ib_shutdown(IB_SHUTDOWN_NORMAL);
    if(err != DB_SUCCESS){
        puts(ib_strerror(err));
        return err;
    }
    return 0;
}